3

我们有许多使用互操作和相关 DLL 的项目。所有项目都有单独的 DLL 引用和设置,但基本上它们都使用相同的 DLL。因此,如果在安装/卸载安装程序时有任何 DLL 注册/注销,则会多次产生问题。

此外,如果安装位置更改或 DLL 引用位置更改,上述方法可能会产生问题。

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

我们怎么能做到这一点?有没有更好的解决方案或解决方法?

4

3 回答 3

2

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

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

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

于 2009-06-19T12:36:50.167 回答
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

于 2009-06-14T05:06:37.330 回答
0

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

链接可能会有所帮助,或者只是谷歌“Visual Studio 设置项目合并模块”。

于 2009-06-14T05:17:22.123 回答