.net – WIX将新文件添加到共享组件

我有一个共享的DLL,我们称之为Utility.dll,由多个产品安装.在我的WIX文件中,我将Utility.dll作为单独的组件安装.现在,Utility.dll 2.0版引用了一个额外的DLL,UtilityUtility.dll,需要同时安装.

在我第一次尝试集成UtilityUtility.dll时,我创建了一个包含新dll的新WIX组件.

这会在以下情况中导致问题

1)用户安装产品1 {Utility.dll 1.0}
2)用户安装产品2 {Utility.dll 2.0,UtilityUtility.dll 2.0}
3)用户卸载产品2 {Utility.dll 2.0}

现在,当用户使用Utility.dll时,如果找不到引用的UtilityUtility.dll,它将失败

这导致我将UtilityUtility.dll添加到原始组件,这阻止了在前一个场景中删除UtilityUtility.dll,但它有自己的问题.

1)用户安装产品1 {Utility.dll 1.0}
2)用户安装产品2 {Utility.dll 2.0,UtilityUtility.dll 2.0}
3)用户卸载产品2 {Utility.dll 2.0,UtilityUtility.dll 2.0}
4)用户卸载产品1 {UtilityUtility.dll 2.0}

UtilityUtility.dll是孤立的,因为它不会被产品1卸载删除(它在最初安装时不存在于组件中).

我还有其他选择吗?

谢谢

除非您可以更新产品1(我认为这不完全可能),否则我认为您已经搞砸了.恕我直言,组件规则是
Windows Installer最糟糕的事情.这个
link to an old blog post of mine总结了大部分.您的情况与此处描述的情况略有不同,但结果是预期的.

我想你可以选择两个邪恶中较小的一个.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。