gpt4 book ai didi

c# - 创建两个具有依赖关系的 Nuget 包

转载 作者:行者123 更新时间:2023-11-30 23:24:22 24 4
gpt4 key购买 nike

在这里问之前我已经看了一段时间了。希望其他人已经解决了这个问题。

我无法从同一解决方案中的两个不同项目创建 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 没有获得对项目 a 的预发布依赖。

为什么会这样?

构建具有内部引用依赖项的 nuget 包的良好设置是什么?

最佳答案

我这里有同样的问题,但是在这个问题中找到了解释: https://github.com/NuGet/Home/issues/1795

The $version$ token is always a replacement from the assembly version that was built. In specifying the -Version switch, you are overriding the content of the version element and not providing a new value for the $version$ token.

同样来自这个线程,解决方案是将其添加到您的命令行:

-Properties "PackageVersion=1.0.0-beta1"

然后在您的 .nuspec 文件中,到处使用 $PackageVersion$ 而不是 $version$

虽然没有测试,我还不知道如何为我的案例获取我的版本号,但我希望它能有所帮助。

关于c# - 创建两个具有依赖关系的 Nuget 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37833248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com