Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# .NET-使用不同版本管理NuGet包的公共依赖项_C#_.net_Nuget_Nuget Package_Dotnet Cli - Fatal编程技术网

C# .NET-使用不同版本管理NuGet包的公共依赖项

C# .NET-使用不同版本管理NuGet包的公共依赖项,c#,.net,nuget,nuget-package,dotnet-cli,C#,.net,Nuget,Nuget Package,Dotnet Cli,我有两个解决方案:SolutionA和SolutionB在单独的存储库中。这两种解决方案都依赖于Package1,但SolutionA下的项目利用了此软件包的1.0.0版,而SolutionB下的项目利用了2.0.0版 现在,需要在SolutionB中打包和发布库的NuGet包,该包将在SolutionA中的库中使用 正如所料,我在尝试此操作时看到降级错误。因此,我决定将SolutionB中Package1的版本降级为1.0.0版。代码仍在编译;在运行时没有不良副作用。然后,我打包并发布,并尝试

我有两个解决方案:SolutionA和SolutionB在单独的存储库中。这两种解决方案都依赖于Package1,但SolutionA下的项目利用了此软件包的1.0.0版,而SolutionB下的项目利用了2.0.0版

现在,需要在SolutionB中打包和发布库的NuGet包,该包将在SolutionA中的库中使用

正如所料,我在尝试此操作时看到降级错误。因此,我决定将SolutionB中Package1的版本降级为1.0.0版。代码仍在编译;在运行时没有不良副作用。然后,我打包并发布,并尝试在SolutionA编辑中重新汇总:此时,我尝试重新安装SolutionB NuGet软件包的最新版本,方法是完全卸载它,然后重新安装,然后直接在名为的NuGet软件包管理器中降级。。内VS

在这一点上,我仍然看到降级错误,引用SolutionB依赖关系正在利用更高的版本,但事实上,它不再是了。为什么?

哈尔普

编辑:添加错误以供参考。我选择Newtonsoft.Json来演示。这很容易用任何具有多个版本的NuGet包进行复制

错误NU1605检测到包降级:Newtonsoft.Json来自11.0.2 至9.0.1。直接从项目中引用包以选择 不同的版本。TestProjectA->TestProjectB 1.0.0-> Newtonsoft.Json>=11.0.2 TestProjectA->Newtonsoft.Json>= 9.0.1

TestProjectA的NuGet依赖项:

TestProjectB的NuGet依赖项:


确保在更改TestProjectB时,增加NuGet软件包版本或清除本地NuGet缓存dotnet NuGet locals all-clear。

您可能需要在配置文件中输入一个条目。可能不止一个。NuGet地狱一点也不好玩。如果没有更多的信息版本,错误消息是什么,等等。我怀疑这里没有人能提供帮助。@Flydog57谢谢你的建议。您指的是哪个配置文件?我在.NET标准工作抱歉,帮不上忙。我们正在与4.x对抗。在传统的.NET中,您可以在配置文件中放置包含和项的元素,以解决程序集绑定问题。我不知道如何在核心/标准worldYup中做到这一点,这就是问题所在。每次都会从缓存中提取旧版本。谢谢,@MartinUllrich!