我正在创建一个 .NuSpec 文件
<metadata>
<version>$version$</version>
<!-- ... -->
</metadata>
不幸的是,这会以 Major.Minor.Build.Revision 格式返回程序集的版本。为了与 Squirrel 使用的 SemVersion 兼容,我只需将其缩减为 3 个部分(Major.Minor.Build)。
有没有办法做到这一点?我宁愿不必为每个版本手动输入版本号。
我正在创建一个 .NuSpec 文件
<metadata>
<version>$version$</version>
<!-- ... -->
</metadata>
不幸的是,这会以 Major.Minor.Build.Revision 格式返回程序集的版本。为了与 Squirrel 使用的 SemVersion 兼容,我只需将其缩减为 3 个部分(Major.Minor.Build)。
有没有办法做到这一点?我宁愿不必为每个版本手动输入版本号。
有没有办法做到这一点?我宁愿不必为每个版本手动输入版本号
如果您不想为每个版本手动修改版本号,您可能不需要.nuspec
. 您可以nuget pack
直接使用项目文件运行:
nuget pack MyProject.csproj
根据Replacement tokens,当我们.csproj
直接打包时, 的值来源$version$
来自 fileAssemblyInfo.cs
或AssemblyInfo.vb
:
所以nuget将使用AssemblyInformationalVersion
如果存在的值,否则使用AssemblyVersion。默认情况下将其删除,因为它们不适用于语义版本控制。当我们将它添加到AssemblyInfo.cs
文件中时:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("2.0.0")]
Nuget 将实际应用该字符串中的任何内容作为包版本。 请注意,信息版本仅包含三个数字。因此它与 Squirrel 使用的 SemVersion 兼容。
希望这可以帮助。