c# - DLL 引用未复制到项目 bin 中

标签 c# .net visual-studio .net-assembly solution

项目 A 引用项目 B项目 B 引用外部 DDL(使用 NuGet 恢复)。 DLL 应复制到项目 A 的 bin 文件夹中(连同项目 B 的 DLL):

DLL References Copied To Bin

在我的例子中,当运行 Project A 时,我抛出了以下异常:

Could not load file or assembly 'PostSharp, Version=3.2.18.0, Culture=neutral, PublicKeyToken=b13fd38b8f9c99d7' or one of its dependencies. The system cannot find the file specified.

DLL 未复制到项目 A 的库中。 Project B 中的所有其他外部引用都被很好地复制过来,这让我感到困惑。

Copy Local 对所有涉及的引用设置为 true。示例:

Copy Local Reference

我该怎么做?

注意:使用 Visual Studio 2013。

最佳答案

我找到的选项是:

  • 在项目 A 中添加对 PostSharp 的引用。
  • 在项目 B 中添加伪代码,以便编译器检测到引用正在被使用。
  • 添加构建事件以强制复制 DLL。

我不喜欢上述任何解决方案。在我看来,它们是 hack,从长远来看只会导致更难以维护的解决方案。

我已经通过使用公共(public)输出目录解决了这个问题。这似乎是许多人推荐的解决方案。我还体验到了更快的构建时间。参见 this Stackoverflow post .

关于c# - DLL 引用未复制到项目 bin 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23545272/

相关文章:

c# - 对类类型操作数使用 == 运算符

c++ - 无法执行 fstream >> int * 吗?

c# - 多个Sql插入字符串并使用Catch回滚(异常)

c# - 具有多个组的 Linq GroupBy 投影

c# - 安装不带 InstallUtil.exe 的 .NET Windows 服务

c# - 此模式需要正则表达式 : point(latitude, 经度)

.NET 文化变革事件?

visual-studio - 调试中的 Watch 搜索能力?

javascript - ASP.Net MVC3 RawUrl 检查

c# - chrome升级到63版本后Selenium ChromeDriver异常