1

我想在安装后立即启动应用程序。我的代码如下

   <Variable Name="LaunchTarget" Value="C:\ProgramFiles\MySetup\MyExe.exe" />

如果用户在安装过程中更改了安装目录,则此代码将不起作用。

我的想法是在安装过程中将目录保留在注册表项中(例如C:\ProgramFile\UserGiverName),并且在引导程序中想要读取此值并使用此注册表项值添加 exe 名称,然后将该值分配给LaunchTarget变量。

欢迎对此提出任何好的建议

4

1 回答 1

1

如果您编写自定义引导程序应用程序,则可以执行您所描述的操作。但是,wixstdba 中没有内置任何东西可以在应用链后读取注册表。我猜您使用的是 wixstdba,因为它内置了 LaunchTarget 的概念。

为了解决这个问题,我建议使用一个变量来存储安装文件夹(也许调用它InstallFolder)并通过一个MsiProperty元素将该值从 wixstdba 传递到 .msi 文件。就像是:

<!-- Default InstallFolder to something -->
<Variable Name='InstallFolder' Value='[ProgramFilesFolder]MySetup' />

<!-- Pass InstallFolder to the MSI -->
<MsiPackage ...>
   <MsiProperty Name='INSTALLFOLDER' Value='[InstallFolder]' />
</MsiPackage>

然后您可以将 LaunchTarget 设置为:

<Variable Name='LaunchTarget' Value='[InstallFolder]\MyExe.exe' />
于 2013-03-21T14:11:44.533 回答