使用版本参数和依赖项进行nuget打包

时间:2014-09-01 23:13:13

标签: nuget

在使用nuget打包新软件包时遇到问题,因为当我通过命令行指定版本时,它会将其应用于软件包而不是依赖项。即。

  

NuGet.exe包myproject.csproj -Version 3.0.4.3373

使用nuspec文件

<?xml version="1.0"?>
<package>
<metadata>
    <id>MyProject</id>
    <version>$version$</version>
    <authors>Me</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>A description.</description>
    <copyright>Copyright 2014</copyright>
    <dependencies>
        <dependency id="My.First.Dependency" version="[$version$]" />
        <dependency id="My.Second.Dependency" version="[$version$]" />
    </dependencies>
</metadata>
</package>

导致版本为3.0.4.3373的包,但依赖项都是以1.0.0.0编写的,这不是我想要的。我希望它们是相同的版本。

我在这里遇到了什么问题。我确定我之前有这个工作。我想我已经使用了2.5和2.8的nuget.exe。

1 个答案:

答案 0 :(得分:0)

使用csproj和nuspec(仍然使用NuGet 3.5)时似乎是一个非常老的错误......

使这项工作的一种方法是添加额外的属性

<?xml version="1.0"?>
<package>
<metadata>
    <id>MyProject</id>
    <version>$version$</version>
    <authors>Me</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>A description.</description>
    <copyright>Copyright 2014</copyright>
    <dependencies>
        <dependency id="My.First.Dependency" version="[$PackageVersion$]" />
        <dependency id="My.Second.Dependency" version="[$PackageVersion$]" />
    </dependencies>
</metadata>
</package>

然后更新您的命令

NuGet.exe pack myproject.csproj -Version 3.0.4.3373 -Properties "PackageVersion=3.0.4.3373"

它不是那么干净,但它有效。

相关问题