2017-05-04 74 views
0

嘿,我一直在試圖改變我的csproj使用.net核心風格。該項目是一個類庫,我從中生成一個nuget包。一切似乎很好地工作的變化,如果我指定的值作爲硬編碼值Dotnet包不尊重版本屬性的動態變量

<Version>1.0.1.1</Version> 

不過,我想使用一個共享的彙編文件,以推動一些項目的版本中SLN。哪些工作正常的DLL,但不是它生成的nuget包。運行dotnet pack具有相同的問題。

我嘗試了幾件事情來使這個工作,但最令人驚訝的似乎是它如何忽略變量。例如

InitialTargets="SetVersion"

<Target Name="SetVersion"> 
<PropertyGroup> 
    <Version>1.0.1.1</Version> 
</PropertyGroup> 

<Version>$(Version)</Version> 

這些DLL生成的所有具有版本1.0.1.1或任何變量設置爲。但nuget包仍然只生成1.0.0.0版本。

如果我指定完全相同的輸出:

<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute> 

讓它讀取來自SharedAssembly.cs文件的版本。 dll是正確的版本,但不是nuget軟件包。

我知道打電話dotnet pack時,我可以指定版本,但希望避免這一點,必須從VS

運行的版本時

回答

1

嘗試使用<PackageVersion>它只是正確地發生:這是MSBuild的屬性,因此它具有去一個<PropertyGroup>組內:

<PropertyGroup> 
    <PackageVersion>1.0.1.1</PackageVersion> 
</PropertyGroup> 
+0

令人驚歎!這樣可行。感謝:D –