我用visual studio 2010写了一个控件库,我称之为MyLibrary。MyLibrary引用了我的另一个控件库,我们称之为AnotherLibrary。我还有一个干净的虚拟机,并且我已经在云服务器上的GAC中添加了AnotherLibrary。使用云服务器,我创建了一个新的WinForms项目,将MyLibrary.dll添加到工具箱中,并将其中一个控件拖放到窗体上。Visual Studio会将MyLibrary.dll和AnotherLibrary.dll添加到引用中,即使AnotherLibrary.dll在GAC中(并且不是必需的)。我可以从引用中删除AnotherLibrary.dll,一切都很好。
在这种情况下,有没有办法防止visual studio添加AnotherLibrary.dll?
编辑:我已经对此进行了一些思考,我有一个例子。将TabControl添加到设计器中的父控件时,visual studio不会将System.Design添加到引用中,即使TabControl依赖它也是如此。那么,肯定有办法做到这一点吧?
发布于 2012-05-26 01:42:57
你仍然需要参考资料。就像你需要引用,比如说,System.dll,它也在GAC中。您只需在bin\Debug目录中不需要该程序集的副本。你碰巧没有通过移除引用来破坏编译器是可能的,特别是因为这是一个间接使用的程序集。但也有可能你最终会走运。
通常,您确实希望避免在您的开发机器上使用GAC。因为当您创建错误修复时,您会关心程序集的特定版本。您可以从源代码管理中获得这些特定的版本,而不是GAC。
发布于 2012-05-26 01:39:38
它会自动包含所有依赖项,这不是很有意义吗?它不能假设在您想要部署代码的每一台机器上的GAC中都有AnotherLibrary。当然,正如您所提到的,您可以手动删除它...
https://stackoverflow.com/questions/10758903
复制相似问题