【问题标题】:In VS, how do I prevent dlls from being copied when referenced在VS中,如何防止引用时复制dll
【发布时间】:2011-09-07 18:13:52
【问题描述】:

我最初认为对 dll 的引用只是一个引用。但似乎引用的 dll 被复制到 bin\debug 文件夹中。

如何防止这种情况发生?

【问题讨论】:

  • 功能,不是错误。除非程序集存储在 GAC 中,否则您不太可能调试程序。在这种情况下,它不会复制它。
  • 我明白了。我还不熟悉使用 GAC。但是关于复制 dll 的事情似乎没有必要。
  • 不要使用 GAC。副本是个好东西。

标签: visual-studio-2008 dll reference


【解决方案1】:

您可以在解决方案资源管理器中右键单击引用,然后选择“属性”。选项之一是“复制本地”。将其设置为 false,它不会复制程序集。

只需意识到程序集在运行时仍然必须是可发现的。这就是它默认复制到本地的原因。

【讨论】:

  • +1。我已经这样做了,但现在它不会运行。有没有办法强制它使用我引用的 dll?
  • @user420667:否 - 程序集加载器使用(有效)正常的 DLL 发现规则。除非程序集在 GAC 中,否则默认情况下,它需要与 .exe 位于同一文件夹中 - 这就是默认复制本地的原因。您是否有理由不希望它在构建时复制?
  • 好吧,这似乎没有必要。我认为程序集加载器可以利用 .sln 文件来帮助它发现 dll。我只是在设想一个解决方案引用另一个解决方案引用另一个解决方案的场景,这可能会导致大量不必要的(在我看来)复制。
  • @user420667:这是一项功能,而不是错误 ;) 这样做有助于防止 DLL-hell - 您始终知道您加载的程序集版本是您在构建期间使用的版本,这是非常好的。复制和文件管理由 VS 自动处理,所以我会接受它(并且很高兴)
  • 好的。我进入了陌生的领域,将接受专家的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 2016-12-01
  • 1970-01-01
  • 2016-11-05
  • 2010-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多