C# DLL引用未复制到项目bin中
项目A引用项目B,项目B引用外部DDL(使用NuGet恢复)。DLL应复制到项目A的bin文件夹中(与项目B的DLL一起): 在我的例子中,当运行项目A时,我会引发以下异常: 无法加载文件或程序集的PostSharp,版本=3.2.18.0, 区域性=中性,PublicKeyToken=b13fd38b8f9c99d7'或其 依赖关系。系统找不到指定的文件 DLL未被复制到项目A的bin中。来自项目B的所有其他外部引用都被复制了,这让我很困惑 对于所有涉及的引用,C# DLL引用未复制到项目bin中,c#,.net,visual-studio,.net-assembly,solution,C#,.net,Visual Studio,.net Assembly,Solution,项目A引用项目B,项目B引用外部DDL(使用NuGet恢复)。DLL应复制到项目A的bin文件夹中(与项目B的DLL一起): 在我的例子中,当运行项目A时,我会引发以下异常: 无法加载文件或程序集的PostSharp,版本=3.2.18.0, 区域性=中性,PublicKeyToken=b13fd38b8f9c99d7'或其 依赖关系。系统找不到指定的文件 DLL未被复制到项目A的bin中。来自项目B的所有其他外部引用都被复制了,这让我很困惑 对于所有涉及的引用,Copy Local设置为tr
Copy Local
设置为true。例如:
我该怎么做
注意:使用Visual Studio 2013。我找到的选项是:
- 在项目a中添加对PostSharp的引用
- 在项目B中添加伪代码,以便编译器能够检测到引用正在被使用
- 添加生成事件以强制复制DLL
我已经通过使用公共输出目录修复了这个问题。这似乎是许多人推荐的解决方案。我也经历了更快的构建时间。请参阅。当我遇到此问题时,这是因为我更改了一个项目的名称,但没有更改程序集名称-它与解决方案中另一个项目的程序集名称相同。我在项目B上添加了一些虚拟(未使用)代码,以引用所需的DLL
因此,编译器会猜测它必须将DLL复制到project A输出中。可能的重复事实上,更好的答案是我认为这是一个问得很好的问题:)我还发现DLL需要使用与.net Framework相同的版本在我的情况下,一个项目使用了客户端配置文件,而不是.net framework 4的完整版本。更改为完整版本修复了该问题。