Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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/7/elixir/2.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# dll文件依赖项与nuget packagereference混乱_C#_.net_Nuget - Fatal编程技术网

C# dll文件依赖项与nuget packagereference混乱

C# dll文件依赖项与nuget packagereference混乱,c#,.net,nuget,C#,.net,Nuget,我们的团队提供多个nuget SDK供用户参考。我们创建的每个nuget文件都将包含其自己的项目dll文件及其依赖项dll文件 当用户试图使用多个nuget SDK时,这就给我们带来了问题。尤其是当这些NUGET包含相同dll依赖项的不同版本时 例如,nuget A包含一个.dll。由于依赖项自动解析,nuget B(取决于nuget A)同时包含A.dll和B.dll。如果用户同时添加对nuget A和B的引用,并且当A.dll中有任何更改时,我们需要同时更新nuget A和B,并要求用户同时

我们的团队提供多个nuget SDK供用户参考。我们创建的每个nuget文件都将包含其自己的项目dll文件及其依赖项dll文件

当用户试图使用多个nuget SDK时,这就给我们带来了问题。尤其是当这些NUGET包含相同dll依赖项的不同版本时

例如,nuget A包含一个.dll。由于依赖项自动解析,nuget B(取决于nuget A)同时包含A.dll和B.dll。如果用户同时添加对nuget A和B的引用,并且当A.dll中有任何更改时,我们需要同时更新nuget A和B,并要求用户同时更新到最新的nuget A和B

当我们拥有的NUGET数量增加时,这给我们带来了很多麻烦。每次我们做一些改变,我们都要更新我们支持的所有NUGET。 有没有办法将一个dll依赖项限制在一个nuget中?然后,我们只需要在某些更新发生时更新一个nuget

谢谢

我们创建的每个nuget文件都将包含其自己的项目dll文件及其依赖项dll文件

这就是问题所在。每个NuPkg文件应该只包含它自己的库,但是声明它对其他包的依赖关系。这是打包NuPkg文件时的默认行为,因此假定您在.nuspec文件或.csproj文件中有额外的位来包含依赖项库。。。把那些拿走

一旦每个包只包含它自己的库,您就回到了“预期”的情况,客户机应该能够仅仅依赖其中一个库,并且工具将以传递方式解决依赖关系