我正在使用
创建.NuSpec文件<metadata>
<version>$version$</version>
<!-- ... -->
</metadata>
不幸的是,它以Major.Minor.Build.Revision格式返回程序集的版本。我需要将其减少到3个部分(Major.Minor.Build)以与Squirrel使用的SemVersion兼容。
有没有办法做到这一点?我希望不必为每个版本手动输入版本号。
答案 0 :(得分:1)
有没有办法做到这一点?我不希望为每个版本手动输入版本号
如果您不想为每个版本手动修改版本号,您可能不需要.nuspec
。您可以直接使用项目文件运行nuget pack
:
nuget pack MyProject.csproj
根据Replacement tokens,当我们直接打包.csproj
时,$version$
的来源来自文件AssemblyInfo.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兼容。
来源:How to Version Assemblies Destined for Nuget
希望这有帮助。