在主 Bundle 之前安排 RelatedBundle 操作
Posted
技术标签:
【中文标题】在主 Bundle 之前安排 RelatedBundle 操作【英文标题】:Schedule RelatedBundle Action before primary Bundle 【发布时间】:2014-02-06 19:39:37 【问题描述】:我有一个应用程序需要在安装之前卸载相关的捆绑包。我可以正确地检测到它,并在 OnPlanRelatedBundle() 中将它的状态设置为 Absent,但直到安装了我的新包后它才会被删除。有没有办法将相关的捆绑操作设置为在主捆绑之前发生?
<RelatedBundle Action="Detect" Id="the-other-id" />
在后面的代码中,我有以下检测到的相关捆绑包
private void OnDetectedRelatedBundle(object sender, DetectRelatedBundleEventArgs e)
if (e.Operation == RelatedOperation.None && e.RelationType == RelationType.Detect)
// If the other app is installed, we want to save the product code,
// so we can uninstall it like we were upgrading it
m_relatedBundleId = e.ProductCode;
对于规划相关的捆绑包
private void OnPlanRelatedBundle(object sender, PlanRelatedBundleEventArgs args)
// If we've detected the related app, we want to schedule it to be uninstalled (State = Absent)
if (args.BundleId == m_relatedBundleId)
args.State = RequestState.Absent;
【问题讨论】:
【参考方案1】:今天,当前捆绑包操作之后的所有相关捆绑包操作。如果您有令人信服的用例来提供其他计划,请在 http://wixtoolset.org/issues/ 提出功能请求。
【讨论】:
以上是关于在主 Bundle 之前安排 RelatedBundle 操作的主要内容,如果未能解决你的问题,请参考以下文章