-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
92 lines (82 loc) · 4.94 KB
/
Copy pathDirectory.Build.props
File metadata and controls
92 lines (82 loc) · 4.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<Project>
<PropertyGroup>
<TargetFramework>net11.0</TargetFramework>
</PropertyGroup>
<!-- 定义 Linux -->
<PropertyGroup>
<IsLinux Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' == 'true'">true</IsLinux>
</PropertyGroup>
<PropertyGroup Condition="'$(IsLinux)' == 'true'">
<DefineConstants>$(DefineConstants);LINUX</DefineConstants>
</PropertyGroup>
<PropertyGroup>
<!-- 全仓统一版本:Version 派生 AssemblyInformationalVersion(含预发布后缀,
关于页显示);AssemblyVersion/FileVersion 不允许后缀,单独给数字版。 -->
<Version>0.0.1-dev</Version>
<AssemblyVersion>0.0.1</AssemblyVersion>
<FileVersion>0.0.1</FileVersion>
<!-- 不把 git 提交哈希拼进 InformationalVersion(默认会加 +sha 后缀)。 -->
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
</PropertyGroup>
<!--
============================ 随包分发的插件从哪来 ============================
插件 SDK、模板、vela-plugin CLI 与 Redis/S3/Telnet/HelloWorld 插件于 2026-08-21 拆出主仓库;
2026-08-22 两者又各自独立,现在是两个仓库:
https://github.com/joesdu/velashell-plugin-toolchain SDK 与工具链
https://github.com/joesdu/velashell-plugins 第一方插件(Redis / S3 / Telnet / HelloWorld)
契约程序集(VelaShell.PluginSdk / .Testing)一律走 nuget.org 上的正式包,版本写在
src/ 与 tests/ 的 Directory.Packages.props 里。那几个插件的二进制本仓库不再 pin:
2026-08-22 起它们不随发行包预装(用户按需从插件商店装),本机想连它们一起跑就自己把
插件目录铺进 artifacts/plugins/,见 src/VelaShell/VelaShell.csproj 的 VelaPluginsStageDir。
**例外:AI 插件(velashell.ai)是本仓库自建的第一方插件**,源码在 plugins/ 下,
随主程序一起构建、一起发布 —— 它与宿主的耦合最紧(要用宿主的 AvaloniaEdit 作输入框、
必须进程内装载、Avalonia 版本必须与宿主逐字一致),分在两个仓库时每改一处 UI 都要
先发一次插件仓库的 Release 才能联调。详见 plugins/README.md。
-->
<PropertyGroup>
<Authors>joesdu</Authors>
<PackagePrefix>VelaShell</PackagePrefix>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/joesdu/VelaShell</RepositoryUrl>
<GenerateAssemblyConfigurationAttribute>True</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>True</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>True</GenerateAssemblyProductAttribute>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<PackageReadmeFile>README.md</PackageReadmeFile>
<!--
==================== Windows 版本资源(#299 报毒)====================
下面三项经程序集特性写进每个产物的 Win32 版本资源(exe 的那份由 SDK 从托管
程序集拷进 apphost),对应资源管理器「属性 → 详细信息」与任务管理器里那几列:
Company → CompanyName Product → ProductName Copyright → LegalCopyright
(FileDescription 取 AssemblyTitle、Comments 取 Description,按工程各自给。)
为什么显式写:版本资源填不满是杀软启发式的加分项之一,未签名 + 低流行度的
.NET apphost 本就容易被判可疑,元数据空着等于白送一条命中理由;向厂商提误报
申诉时,分析员看到的也正是这几个字段。**这只是降低概率,不解决报毒**——根治
要么走 Authenticode 签名(声誉逐版本累积),要么让用户装商店版(微软重签)。
Company/Product 此前是隐式默认值(Company 取 Authors、Product 取 AssemblyName,
于是每个 dll 的 ProductName 各不相同:VelaShell.Core、VelaShell.Terminal……)。
这里钉死成同一个产品名,全部随包分发的程序集才归得成一组。
Copyright 原先只在 src/Directory.Build.props 的 Release 组里给,Debug 产物的
LegalCopyright 是空的;移到这里改为无条件,两种配置一致。
-->
<Company>joesdu</Company>
<Product>VelaShell</Product>
<Copyright>© joesdu. All rights reserved.</Copyright>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net11.0'">
<EnablePreviewFeatures>true</EnablePreviewFeatures>
<Features>$(Features);runtime-async=on</Features>
<NoWarn>$(NoWarn);CA2252;SYSLIB5007;</NoWarn>
</PropertyGroup>
<ItemGroup>
<None Include=".\README.md" Pack="true" PackagePath="" />
</ItemGroup>
<PropertyGroup>
<LangVersion>preview</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<NoWarn>$(NoWarn);IDE0047;</NoWarn>
<!--控制生成产物目录-->
<!--<ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath>-->
</PropertyGroup>
</Project>