引用的项目依赖项是从GAC而不是NuGet包文件夹复制

时间:2016-05-27 23:09:31

标签: c# visual-studio nuget

我有一个奇怪的问题,我有一个Windows服务项目(A),它引用了解决方案中的另一个项目(B)。项目B引用了一个nuget包(在本例中为protobuf-net);它正确引用packages文件夹中的路径。但是,当我构建Windows服务项目A时,复制的DLL是一个不同的版本(来自GAC)。

解决此问题的最佳方法是什么,并确保正确复制相关性。

我尝试删除packages文件夹中的关联文件夹,然后重建Project B;这确实导致nuget再次自动下载文件,但我发现Visual Studio for Project B中的引用已更新为GAC中的旧版本。我不得不删除packages.config文件中的引用,然后使用nuget再次添加它以使其更新为使用packages文件夹中的正确路径。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题并通过设置"复制本地"来解决它。在项目A中对项目B的引用为false。

就我而言,我的所有项目都有相同的输出路径。我有一个EXE(项目A)和一个DLL(项目B)。 DLL具有对Nuget包的引用。当我只编译DLL时,它会将引用的Nuget DLL从packages文件夹复制到输出文件夹。

然而,当我编译EXE时,它将使用GAC中的旧版本覆盖该Nuget DLL。 设置"复制本地" to False修复它,以便只在编译DLL时复制Nuget DLL,而不是在编译EXE时复制。