我目前正在调查一个奇怪的错误,其中仅在项目中添加某个程序集引用似乎会在运行时破坏另一个程序集的某些功能。有关详细信息,请参阅关于 SO 的另一个问题。
添加程序集引用时会发生什么?它会产生什么样的副作用?
我目前正在调查一个奇怪的错误,其中仅在项目中添加某个程序集引用似乎会在运行时破坏另一个程序集的某些功能。有关详细信息,请参阅关于 SO 的另一个问题。
添加程序集引用时会发生什么?它会产生什么样的副作用?
全局程序集缓存
您不能从全局程序集缓存添加引用,因为它严格属于运行时环境。
自定义组件
如果部署或复制包含对全局程序集缓存中注册的自定义组件的引用的应用程序,则无论“复制本地”设置如何,都不会随应用程序一起部署或复制该组件。
另一个项目的输出
您应该避免将文件引用添加到同一解决方案中另一个项目的输出,因为这样做可能会导致编译错误。相反,使用“添加引用”对话框的“项目”选项卡来创建项目到项目的引用。
注册的 COM DLL
如果要添加对包含内部清单的已注册 COM DLL 的引用,请确保先取消注册 DLL。如果不这样做,Visual Studio 会将程序集引用添加为 ActiveX 组件,而不是作为本机 DLL。
EnvDTE 命名空间
当您手动添加对任何 EnvDTE 命名空间(EnvDTE、EnvDTE80、EnvDTE90、EnvDTE90a 或 EnvDTE100)的引用时,请在“属性”窗口中将引用的嵌入互操作类型属性设置为 False。由于无法嵌入某些 EnvDTE 属性,将此属性设置为 True 可能会导致生成问题。