Visual studio 2010 visual studio 2010控件库参考

Visual studio 2010 visual studio 2010控件库参考,visual-studio-2010,dll,Visual Studio 2010,Dll,我使用VisualStudio2010编写了一个控件库,我称之为MyLibrary。我的库引用了我拥有的另一个控制库,我们称之为另一个库。我还有一个干净的虚拟机(CVM),并且我在CVM上的GAC中添加了另一个库。使用CVM,我创建了一个新的WinForms项目,将MyLibrary.dll添加到工具箱中,并将其中一个控件放到表单上。Visual Studio将向引用中添加MyLibrary.dll和AnotherLibrary.dll,即使GAC中有AnotherLibrary.dll(不需要

我使用VisualStudio2010编写了一个控件库,我称之为MyLibrary。我的库引用了我拥有的另一个控制库,我们称之为另一个库。我还有一个干净的虚拟机(CVM),并且我在CVM上的GAC中添加了另一个库。使用CVM,我创建了一个新的WinForms项目,将MyLibrary.dll添加到工具箱中,并将其中一个控件放到表单上。Visual Studio将向引用中添加MyLibrary.dll和AnotherLibrary.dll,即使GAC中有AnotherLibrary.dll(不需要)。我可以从引用中删除另一个library.dll,一切正常

是否有方法阻止visual studio在此场景中添加其他Library.dll


编辑:我对此进行了一些思考,并举了一个例子。将TabControl添加到设计器中的父控件时,visual studio不会将System.Design添加到引用中,即使TabControl依赖于它。那么,肯定有办法做到这一点吗?

自动包含所有依赖项难道没有意义吗?它不能假设GAC中有另一个库,位于您可能希望在其上部署代码的每台计算机上。当然,正如您所提到的,您可以手动删除它……

您仍然需要引用。就像你需要引用,比如说,System.dll,它也在GAC中。在bin\Debug目录中不需要程序集的副本。您可能没有通过删除引用来破坏编译器,特别是因为这是一个间接使用的程序集。但是你最终会失去运气的可能性


通常,您确实希望避免在您的开发人员机器上使用GAC。因为在创建bug修复时,您关心程序集的特定版本。您可以从源代码管理而不是GAC获得这些特定版本。

我以前见过这样做。假设您使用第三方库发布SDK,并且不希望最终用户必须添加对第三方库的引用。您可以在安装程序中添加第三方.dll并提供您的.dll。尽管您的.dll引用了第三方.dll,但生成的.exe直到运行时才关心另一个.dll。