我们有许多使用互操作和相关DLL的项目。所有项目在安装时都具有单独的DLL参考,但是基本上所有项目都使用相同的DLL。因此,如果在安装/设置安装过程中任何DLL注册/注销,都会造成很多问题。
此外,如果更改安装位置或DLL参考位置,上述方法也会造成问题。
我们需要将DLL放在一个位置,所有项目都需要从该位置使用DLL引用,以避免注册/注销问题。但是想知道实际引用如何在.net中找到依赖关系。
我们该怎么做?有更好的解决方案或解决方法吗?
我个人希望使我的所有应用程序都包含所有引用的DLL,这有两个原因:
但是如果您确实需要一个位置,则可以在全局程序集缓存中注册DLL。如果使用Wix这样的部署工具,这将非常简单。或者,您可以使用自定义操作在GAC中进行注册]
将程序集/互操作性dll放入全局程序集缓存(GAC)。
参考:
如何将不受管理的dll部署到GAC中http://blogs.msdn.com/yizhang/archive/2007/06/17/how-to-deploy-unmanaged-dll-into-gac.aspx
全局程序集缓存http://msdn.microsoft.com/en-us/library/yf1d93sz.aspx
使用Merge modules:合并模块提供了一种标准方法,开发人员可以通过该方法向其应用程序提供共享的Windows Installer组件和设置逻辑。 ...
此link可能对Google有用,或者仅是Google的“ Visual Studio设置项目合并模块”。