所以,之前我们使用nuspec文件(nuget pack myproj.nuspec
)调用nuget pack。 nuspec看起来像这样:
<package>
<metadata>
<version>$version$</version>
[more properties]
<dependencies>
<dependency id="MySubProj" version="$version$" />
[more explicit dependencies]
</dependencies>
</metadata>
</package>
我将调用切换为(nuget pack myproj.csproj
),以便自动生成始终过时的显式依赖项。
一切都很好,除了现在完成的nuspec就像
<package>
<metadata>
<version>1.2.3.4</version>
[more properties]
<dependencies>
<dependency id="MySubProj" version="0.0.0.0" />
[more explicit dependencies]
</dependencies>
</metadata>
</package>
虽然MySubProj的正确版本也是1.2.3.4。
更多信息:
我真的不知道我做错了什么以及为什么在使用nuspec直接使用csproj时它会起作用:/
答案 0 :(得分:2)
使用csproj和nuspec(仍然使用NuGet 3.5)时似乎是一个非常老的错误......
使这项工作的一种方法是添加额外的属性
<package>
<metadata>
<version>$version$</version>
[more properties]
<dependencies>
<dependency id="MySubProj" version="$PackageVersion$" />
[more explicit dependencies]
</dependencies>
</metadata>
</package>
然后更新您的命令
NuGet.exe pack myproject.csproj -Version 1.2.3.4 -Properties "PackageVersion=1.2.3.4"
它不是那么干净,但它有效。