簡體   English   中英

C#AssemblyVersion 3位數用於NuGet的PreRelease版本控制

[英]C# AssemblyVersion 3 digits for use with NuGet's PreRelease versioning

AssemblyInfo.cs

[assembly: AssemblyVersion("1.0.*")]

將生成1.0.xx四位數版本號。

哪個,如果我使用這個nuspec元數據:

<version>$version$-test</version>

包裝時會產生錯誤:

The version « 1.0.5431.31092-test » does not follow semantic version control instructions

有一個簡單的方法嗎?

不可能,程序集的版本存儲在System.Version類中,該類由Major,Minor,Build和Revision組成。

編輯:我有點急於回答。 當您將AssemblyVersionAttribute的構造函數與包含asterix的字符串一起使用時,將生成版本的所有四個屬性。 導致數字較少的版本的唯一方法是指定確切的版本號,不帶星號,即“1.0.1”。 請參閱: http//msdn.microsoft.com/en-us/library/system.reflection.assemblyversionattribute.assemblyversionattribute(v = vs.110).aspx

如果您希望版本中的數字較少且生成的版本號較少,則可以使用外部工具在預構建步驟中更改版本號。

不需要進行后期處理, NuGet使用[assembly: AssemblyInformationalVersion("")]作為包版本,將其設置為您喜歡的任何數量的組件並完成它。

PS我強烈建議您也設置AssemblyVersion因為這是.NET實際使用的,至少將其設置為自動增量

這里有一些閱讀

完整的例子

[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyInformationalVersion("1.0")]

將生成一個包Lib.1.0.nupkg包含裝配與1.0.xx版本,版本,你會處理的是1.0

無論何時想要更改nuget版本,只需更改AssemblyInformationalVersion ,而不是觸及AssemblyVersion

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM