2 回答
TA贡献1853条经验 获得超9个赞
如果它适合您,您可以在 assemblyinfo.cs
注意:您必须删除该AssemblyFileVersion属性:
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.3.*.*")]
//[assembly: AssemblyFileVersion("1.0.0.0")] not used
它会自动为您创建与构建时间相关的构建编号。
这是有关此主题的更多信息:AssemblyInfo version information asterisks
TA贡献1877条经验 获得超1个赞
就我个人而言,我会避开 Jenkins 特定的工具,而是依赖于更通用的东西,比如环境变量,如果你曾经切换 CI,它会继续工作,加上很容易在命令行上进行本地测试,根本没有任何 CI。
当然 Jenkins 和其他 CI 一样,设置了一个包含内部版本号的环境变量。所以你所要做的就是把它放到你的 AssemblyInfo.cs 中。如果您四处搜索“以编程方式更新 AssemblyInfo.c”,您会找到无数的答案。
我们通过仅指示 CI 在实际构建之前运行特定的 msbuild 文件并使用 FileUpdate 任务来使用仅 msbuild 解决方案,因为这相当简单。但是例如 PowerShell 脚本也可以做到这一点。它看起来类似于:
<ItemGroup>
<AsmInfoFiles Include="$(ProjectRoot)\**\AssemblyInfo.cs"/>
<ItemGroup>
<PropertyGroup>
<NewVersion>$(VersionMaj).$(VersionMin).$(VersionBuild).0</NewVersion>
<PropertyGroup>
<Target Name="UpdateVersion">
<FileUpdate Files="@(AsminfoFiles)" Encoding="utf-8"
Regex="\[assembly:\s*AssemblyVersion\(.*\)\]"
ReplacementText="[assembly: AssemblyVersion("$(NewVersion)")]"/>
</Target>
版本号由 CI 作为环境变量发布。
- 2 回答
- 0 关注
- 225 浏览
添加回答
举报