2013-10-31 66 views
1

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

有没有办法在nugetter中自动做到这一点?

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

回答

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>元素似乎总是导致崩溃。