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 關注
- 270 瀏覽
添加回答
舉報