嘿我一直试图改变我的csproj以使用.net核心风格。该项目是一个类库,我从中生成一个nuget包。如果我将值指定为硬编码值
,则所有似乎都可以正常使用更改<Version>1.0.1.1</Version>
但是我试图使用共享程序集文件来驱动sln中的一些项目的版本。哪个适用于dll,但不适用于它生成的nuget包。正在运行dotnet pack
会遇到同样的问题。
我尝试了一些方法来实现这一点,但最令人惊讶的似乎是它忽略了变量。 e.g。
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运行构建时恰好发生它
答案 0 :(得分:2)
尝试使用<PackageVersion>
:这是MSBuild属性,因此它必须位于<PropertyGroup>
组内:
<PropertyGroup>
<PackageVersion>1.0.1.1</PackageVersion>
</PropertyGroup>