部署引用一个DLL的多个程序

时间:2009-06-14 04:47:34

标签: c# .net deployment

我们有许多项目使用互操作& amp;相关的dll ...所有项目都有单独的dll参考设置,但基本上所有项目都使用相同的dll。所以如果任何dll在安装/取消安装设置时注册/取消注册,那么很多次都会产生问题。

我们需要将dll放在一个位置&所有项目都需要使用该位置的dll引用来避免注册/注销问题。但是想知道实际引用在.net中的依赖关系。

&安培;如果设置位置已更改或dll参考位置已更改,则上述方法可能会产生问题。

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

感谢。

3 个答案:

答案 0 :(得分:2)

就个人而言,我喜欢让我的所有应用程序都包含所有引用的DLL,原因如下:

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

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

答案 1 :(得分:0)

将程序集/ interop 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

答案 2 :(得分:0)

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

link可能对“Visual Studio安装项目合并模块”有帮助或只是谷歌。