如何部署引用一个DLL的多个程序?

问题描述 投票:3回答:3

我们有许多使用互操作和相关DLL的项目。所有项目在安装时都具有单独的DLL参考,但是基本上所有项目都使用相同的DLL。因此,如果在安装/设置安装过程中任何DLL注册/注销,都会造成很多问题。

此外,如果更改安装位置或DLL参考位置,上述方法也会造成问题。

我们需要将DLL放在一个位置,所有项目都需要从该位置使用DLL引用,以避免注册/注销问题。但是想知道实际引用如何在.net中找到依赖关系。

我们该怎么做?有更好的解决方案或解决方法吗?

c# .net dll deployment global-assembly-cache
3个回答
2
投票

我个人希望使我的所有应用程序都包含所有引用的DLL,这有两个原因:

  • 我可以进行全新安装和卸载,以删除应用程序的所有痕迹,而不必担心会破坏任何东西
  • 如果更改共享的DLL,则不必担心破坏其他应用程序

但是如果您确实需要一个位置,则可以在全局程序集缓存中注册DLL。如果使用Wix这样的部署工具,这将非常简单。或者,您可以使用自定义操作在GAC中进行注册]


0
投票

将程序集/互操作性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


0
投票

使用Merge modules:合并模块提供了一种标准方法,开发人员可以通过该方法向其应用程序提供共享的Windows Installer组件和设置逻辑。 ...

link可能对Google有用,或者仅是Google的“ Visual Studio设置项目合并模块”。

© www.soinside.com 2019 - 2024. All rights reserved.