1

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

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

如果没有,有没有比使用 powershell 修改 nuspec 更简单的方法?

4

1 回答 1

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 功能,但它在某个地方的帮助文件中。

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

于 2014-09-01T07:28:12.917 回答