Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NuSpec-如何将$version$裁剪为Major.Minor.Build(SemVersion)?_C#_Visual Studio_Nuget_Squirrel.windows - Fatal编程技术网

C# NuSpec-如何将$version$裁剪为Major.Minor.Build(SemVersion)?

C# NuSpec-如何将$version$裁剪为Major.Minor.Build(SemVersion)?,c#,visual-studio,nuget,squirrel.windows,C#,Visual Studio,Nuget,Squirrel.windows,我正在使用创建一个.NuSpec文件 <metadata> <version>$version$</version> <!-- ... --> </metadata> $version$ 不幸的是,这将以Major.Minor.Build.Revision格式返回程序集的版本。为了与Squirrel使用的SemVersion兼容,我需要将其缩减为3个部分(Major.Minor.Build) 有没有办法做到这一点?我宁愿不

我正在使用创建一个.NuSpec文件

<metadata>
  <version>$version$</version>
  <!-- ... -->
</metadata>

$version$
不幸的是,这将以Major.Minor.Build.Revision格式返回程序集的版本。为了与Squirrel使用的SemVersion兼容,我需要将其缩减为3个部分(Major.Minor.Build)

有没有办法做到这一点?我宁愿不必为每个版本手工输入版本号

有没有办法做到这一点?我宁愿不必为每个版本手工输入版本号

如果不想手动修改每个版本的版本号,则可能不需要
.nuspec
。您可以直接使用项目文件运行
nuget pack

nuget pack MyProject.csproj
根据,当我们直接打包
.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兼容

资料来源:


希望这有帮助。

可能重复感谢,很有趣-但是,我没有使用新的csproj格式,所以很遗憾,LooksHanks Leo不适用于我,这种输入非常有用!我尝试过让版本自动递增(例如,将AssemblyVersion指定为“1.0.*”),最终得到了4段式版本字符串。我将尝试将此应用于AssemblyInformationalVersion!