Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建两个具有依赖关系的Nuget包_C#_Build_Nuget_Nuget Package - Fatal编程技术网

C# 创建两个具有依赖关系的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

我在问这里之前已经找了好一阵子了。希望其他人已经解决了这个问题

我很难在同一个解决方案中从两个不同的项目创建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得到一个结果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$

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