在使用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 :(得分: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"
它不是那么干净,但它有效。