我在问这里之前已经有一段时间了。希望其他人解决了这个问题。
我在同一解决方案中从两个不同的项目创建nuget包时遇到问题。一个项目依赖于另一个项目,当我尝试创建预发布版本时,依赖项目中的nuget包依赖于已发布的包而不是预先发布的包。
以下是设置:
Solution
Project A
a.nuspec
Project B
b.nuspec
项目B 的内部引用项目A 。 当我运行命令
时nuget pack b.nuspec -IncludeReferencedProjects -Properties Configuration=Release -version 8.1.0-beta0003
我从 b.nuspec 得到的结果为nupkg,如下所示:
<package xmlns="http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd">
<metadata>
<id>project b</id>
<version>8.1.0-beta0000</version>
<dependencies>
<dependency id="project a" version="8.1.0.0" />
</dependencies>
</metadata>
</package>
a.nuspec :
产生的nupkg<package xmlns="http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd">
<metadata>
<id>project a</id>
<version>8.1.0-beta0000</version>
<dependencies>
</dependencies>
</metadata>
</package>
正如您所看到的,项目b没有获得项目的预发布依赖关系。
为什么会这样?
使用内部引用的依赖项构建nuget包有什么好的设置?
答案 0 :(得分:1)
我在这里有同样的问题,但在这个问题上找到了解释: https://github.com/NuGet/Home/issues/1795
$ version $ token始终是程序集版本的替代品 被建。在指定-Version开关时,您将覆盖 版本元素的内容并没有为其提供新值 $ version $ token。
从这个线程来看,解决方案是将其添加到命令行:
-Properties "PackageVersion=1.0.0-beta1"
然后在你的.nuspec文件中,使用$PackageVersion$
到处而不是$ version $