2014-09-01 118 views
1

當我使用nuget打包新包時,我遇到了一個問題,那就是當我通過命令行指定版本時,它將它應用於包而不是依賴關係。 I.E.帶有版本參數和依賴關係的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。

+0

看起來像重複http://stackoverflow.com/questions/37884587/nuget-pack-does-not-recognize-version-in-dependencies但沒有足夠的權限來標記它..所以我在那裏添加了答案以及 – 2017-01-30 13:55:50

回答

0

似乎是一個非常老的bug,同時使用的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" 

這不是乾淨的,但它的作品。