C# 创建两个具有依赖关系的Nuget包
我在问这里之前已经找了好一阵子了。希望其他人已经解决了这个问题 我很难在同一个解决方案中从两个不同的项目创建nuget包。一个项目依赖于另一个项目,当我尝试创建预发布版本时,依赖项目的nuget包取决于发布的包,而不是预发布的包 以下是设置:C# 创建两个具有依赖关系的Nuget包,c#,build,nuget,nuget-package,C#,Build,Nuget,Nuget Package,我在问这里之前已经找了好一阵子了。希望其他人已经解决了这个问题 我很难在同一个解决方案中从两个不同的项目创建nuget包。一个项目依赖于另一个项目,当我尝试创建预发布版本时,依赖项目的nuget包取决于发布的包,而不是预发布的包 以下是设置: Solution Project A a.nuspec Project B b.nuspec 其中,项目B内部引用了项目a。 当我运行命令时 nuget pack b.nuspec -IncludeRefe
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得到一个结果nupkg。nuspec如下所示:
<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>
项目b
8.1.0-beta0000
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>
项目a
8.1.0-beta0000
正如您所看到的,项目b对项目a没有预发布依赖关系
为什么会这样
构建具有内部引用依赖项的nuget软件包的良好设置是什么?我在这里也有同样的问题,但在这个问题中找到了解释: $version$标记始终是从以下程序集版本替换而来: 是建的。在指定-Version开关时,您将覆盖 版本元素的内容,但不为 $version$token 通过该线程,解决方案是将以下内容添加到命令行:
-Properties "PackageVersion=1.0.0-beta1"
然后在.nuspec文件中,在任何地方使用$PackageVersion$
而不是$version$
虽然没有测试它,但我还不知道如何获得我的案例的版本号,但我希望它能有所帮助