如何使用nugetter使用内部版本号设置nuget包版本

时间:2013-10-31 13:54:04

标签: nuget

我们正在使用nugetter将nupkg作为我们构建过程的一部分,用于仅偶尔构建的解决方案,以及我们希望将来分发的解决方案。我们还想在我们拥有的其他解决方案中使用此软件包。到目前为止,我已经能够生成一个我们可以安装的软件包。现在,我希望确保此软件包每次构建时都会更新其版本,以便我们可以轻松更新软件包。我认为使用内部版本号是一个很好的方法,但如果我不必开始编写一个PowerShell脚本来更新包的nuspec,我愿意使用任何递增方案。每一次建设。

有没有办法在nugetter中自动执行此操作?

如果没有,是否比使用powershell修改nuspec更容易?

1 个答案:

答案 0 :(得分:0)

我们正在尝试做同样的事情。 NuGetter附带了一个构建在TfsVersioning之上的构建过程模板。你在用它了吗?如果是这样,您只需要为您的NuGet包ID添加一个特殊元素到VersionSeed.xml文件。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<VersionSeed>
  <Solution name="Your Solution Name">
    <!-- This is the pattern used to replace the AssemblyVersion value. -->
    <AssemblyFileVersionPattern>1.0.J.B</AssemblyFileVersionPattern>
    <!-- This is the pattern used to replace the AssemblyVersion value. -->
    <AssemblyVersionPattern>1.0.0.0</AssemblyVersionPattern>
  </Solution>
  <NuGetPackage id="Your NuGet Package ID">
    <!-- This is the pattern used to replace the version attribute in the NuSpec file. -->
    <VersionPattern>1.0.J.B</VersionPattern>
  </NuGetPackage>
</VersionSeed>

这不是一个记录完备的NuGetter功能,但它位于他们的帮助文件中。

此外,您仍然需要在NuSpec文件中设置<version>属性。目前,我将其强制为0.0.0.0,因为无论如何它都会被构建过程覆盖。完全删除<version>元素似乎总是导致崩溃。