0

我使用 Visual Studio 2010 编写了一个控件库,我将其命名为 MyLibrary。MyLibrary 引用了我拥有的另一个控件库,我们将其称为 AnotherLibrary。我还有一个干净的虚拟机 (CVM),并且我已将 AnotherLibrary 添加到 CVM 上的 GAC。使用 CVM,我创建了一个新的 WinForms 项目,将 MyLibrary.dll 添加到工具箱中,并将其中一个控件拖放到窗体上。Visual Studio 会将 MyLibrary.dll AND AnotherLibrary.dll 添加到引用中,即使 AnotherLibrary.dll 在 GAC 中(并且不需要)。我可以从引用中删除 AnotherLibrary.dll,一切都很好。

有没有办法阻止 Visual Studio 在这种情况下添加 AnotherLibrary.dll?

编辑:我已经考虑过了,我有一个例子。在设计器中将 TabControl 添加到父控件时,Visual Studio 不会将 System.Design 添加到引用中,即使 TabControl 依赖于它。那么,肯定有办法做到这一点吗?

4

2 回答 2

1

你仍然需要参考。就像您需要引用同样位于 GAC 中的 System.dll 一样。您只是不需要bin\Debug 目录中的程序集副本。您碰巧没有通过删除引用来破坏编译器是可能的,特别是因为这是一个间接使用的程序集。但是有些几率你最终会倒霉。

一般来说,您确实希望避免在您的开发机器上使用 GAC。因为您在创建错误修复时关心程序集的特定版本。您从源代码控制而不是 GAC 获得这些特定版本。

于 2012-05-25T17:42:57.010 回答
0

它会自动包含所有依赖项是否有意义?它不能假设您可能希望在其上部署代码的每台机器上的 GAC 中都有 AnotherLibrary。当然,正如您提到的,您可以手动删除它....

于 2012-05-25T17:39:38.433 回答