我需要以编程方式访问引导程序的卸载位置。我需要这些信息,因为一旦所有软件包都成功安装,卸载过程中链中的软件包需要的一些文件需要移动到这里。
我可能需要将注册表中的UninstallString值修改为其他位置,并将引导程序可执行文件和其他所需文件复制到此位置。这样做会有副作用吗?
答案 0 :(得分:0)
您可以使用有效负载添加所需的文件。这些文件被打包到您的boostrapper.exe中,并且在执行引导程序的同一文件夹中执行时可用。将引导程序应用程序所需的文件添加到引导程序应用程序的有效内容中。
<BootstrapperApplicationRef Id='ManagedBootstrapperApplicationHost'>
<Payload SourceFile='MyBA.dll' />
<Payload SourceFile='BootstrapperCore.config' />
... place additional playload files here ...
</BootstrapperApplicationRef>
您可以使用
从引导程序代码访问它们Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "payloadfilename");
您还可以将文件添加到特定包中。
<ExePackage InstallCommand="/q /norestart /ChainingPackage "[WixBundleName]""
UninstallCommand="/uninstall /q /norestart /ChainingPackage "[WixBundleName]"" >
<Payload SourceFile="payloadfilename"/>
</ExePackage>