我们正在使用内部nuget服务器来处理一些常见的类库,我们在解决方案级别管理我们的nuget包。
当一个项目(比如MyProject)引用一个公共库时,比如说Newtonsoft.Json,引用来自 C:\ dev \ myproject \ packages \ Newtonsoft.Json.9.0.1 \ lib \ net461 \ Newtonsoft .Json.dll 即可。我将另一个包(比如CommonProject)添加到MyProject的那一刻,它也引用了Newtonsoft.Json,MyProject中的引用 CHANGES 到 C:\ dev \ myproject \ packages \ CommonProject \ lib \ net461 \ Newtonsoft.Json.dll
这会导致严重的问题和大量的地狱。其中一个常见项目改变了他们的一个参考 - 让我们说CommonProject不再使用Newtonsoft.Json。当MyProject升级到最新版本的CommonProject时,MyProject现在无法编译,因为它无法在 C:\ dev \ myproject \ packages \ CommonProject \ lib \ net461 \ Newtonsoft.Json.dll中找到Newtonsoft.Json 即可。 MyProject仍然将Newtonsoft.Json列为nuget包引用,并且Newtonsoft dll仍然位于包的Newtonsoft.Json文件夹中,但是当我第一次添加CommonProject nuget包时,dll引用就被填满了。 Nuget愚蠢地 CHANGED 每个共享包引用直接映射到CommonProject文件夹而不是每个包的packages文件夹。即使项目引用相同包的完全相同版本,nuget仍会更改引用。
将所有共享包引用移动到最后添加的包的文件夹让我觉得nuget根本不管理包。
请告诉我我做错了什么,让我知道如何从各自的文件夹中正确引用这些包。