下面是两个非常基本的刻录引导程序的源代码。引导程序安装2个MSI程序包,然后SP1在appdata MSI程序包上执行主要升级。最初这个工作得很好,只是我有几个维修探头。Wix补丁包服务
当我删除父引导程序时,它足够聪明,可以删除子SP1修补程序。但是,当我从添加/删除程序中删除SP1更新时,根本没有安装任何应用程序数据。我必须对原始引导程序包执行修复以重新安装原始版本的应用程序数据。这是一个错误还是我执行它错了?
我可以自己安装SP1包。如果Bootstrapper尚未安装,如何防止安装SP1?
如果我创建了Bootstrapper 2.0,它将正确地取代Bootstrapper 1.0和SP1。如果我运行Bootstrapper 1.0,它会正确阻止。但是如果我运行SP1,它会安装。我如何限制SP1到Bootsrapper v1?
如果前两项目前不可能,是否可以创建一个不可移动的SP1? (强制删除并重新安装父包以恢复到原始状态。)我看到如何使用DisableRemove和DisableModify属性,但它根本不会在“添加/删除程序”中显示,用户仍然可以返回EXE并使用WiXStdBA删除软件包。
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Bundle Manufacturer="ISWIX" Name="Bootstrapper" UpgradeCode="44a1059e-e7f7-46c7-9627-b720d6417d69" Version="1.0.0.0"> <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"/> <Chain> <MsiPackage SourceFile="app-1.0.msi"/> <MsiPackage SourceFile="appdata-1.0.msi"/> </Chain> </Bundle> </Wix> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Bundle Manufacturer="ISWIX" Name="SP1" ParentName="Bootstrapper" UpgradeCode="44a1059e-e7f7-46c7-9627-b720d6417d69" Version="1.0.0.1"> <RelatedBundle Action="Patch" Id="44a1059e-e7f7-46c7-9627-b720d6417d69"/> <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"/> <Chain> <MsiPackage SourceFile="appdata-1.1.msi"/> </Chain> </Bundle> </Wix>
对不起,我张贴的XML,但它不会渲染。这是我可以拿出来分享的最好的。 –
为什么不使用代码示例{}来粘贴实际的XML。 – Isaiah4110
我一遍又一遍地尝试。当我粘贴XML时,它不会显示所有内容。当我把它放在引用块或代码块中时,它显得很奇怪。 –