【发布时间】:2017-02-11 19:15:05
【问题描述】:
我正在使用最新的(截至今天).NET Core 工具。在那里,您在
解释为什么这是一个坏主意,应该怎么做也是一个很好的答案。
【问题讨论】:
标签: nuget .net-core versioning csproj
我正在使用最新的(截至今天).NET Core 工具。在那里,您在
解释为什么这是一个坏主意,应该怎么做也是一个很好的答案。
【问题讨论】:
标签: nuget .net-core versioning csproj
MSBuild 中的 Version 属性不像 project.json 那样支持星号(通配符)格式。
但是,使用 MSBuild,您可以通过其他方式计算版本。没有一种正确的方法可以做到这一点,但这是一种方法。我们改用“VersionPrefix”。 Microsoft.NET.Sdk 还会自动将 VersionPrefix 和 VersionSuffix 组合起来,形成“Version”的最终值。
在文件中:
<PropertyGroup>
<VersionPrefix>2.0.0</VersionPrefix>
</PropertyGroup>
在构建服务器上:
msbuild.exe /t:Pack /p:VersionSuffix=build00123
// or, the dotnet.exe equivalent
dotnet pack --version-suffix build00123
结果:
AssemblyVersion = 2.0.0.0
Package version = 2.0.0-build00123
我们的构建服务器在每次运行时生成构建号。
如果您想使用老式的 AssemblyVersion 星号形式,您可以在 MSBuild 中显式设置 <AssemblyVersion> 属性。如果不是,则默认为major.minor.patch 值<Version>。
更多细节:
Microsoft.NET.Sdk 中有六个“版本”设置。详情请见What is the difference between various MSBuild version properties, such as Version, VersionPrefix, and VersionSuffix?。
【讨论】: