加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 21:27:52 所属栏目:Windows 来源:网络整理
导读:我有一个共享的DLL,我们称之为Utility.dll,由多个产品安装.在我的WIX文件中,我将Utility.dll作为单独的组件安装.现在,Utility.dll 2.0版引用了一个额外的DLL,UtilityUtility.dll,需要同时安装. 在我第一次尝试集成UtilityUtility.dll时,我创建了一个包含新dl
我有一个共享的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总结了大部分.您的情况与此处描述的情况略有不同,但结果是预期的.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读