2013-03-21 16 views
1

我想在安装后立即启动应用程序。 我的代码如下从注册表读取值并连接并最终分配给wix引导程序中的变量

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

如果用户在安装过程中更改安装目录,然后这个代码将无法正常工作。

我的想法是在安装过程中保持该目录在注册表项(如C:\ProgramFile\UserGiverName),并在引导程序的程序要读取此值,并在该注册表键值添加exe文件名称,则该值分配给LaunchTarget变量。 。

欢迎任何好的建议对此

回答

1

你可以做你所描述的,如果你写一个自定义的引导器应用。但是,wixstdba中没有任何内容会在链应用后读取注册表。我猜你使用的是wixstdba,因为它具有内置的LaunchTarget概念。

为了解决这个问题,我会推荐使用一个变量来存储安装文件夹(可能是InstallFolder)并传递该值从wixstdba下载到.msi文件(通过MsiProperty元素)。喜欢的东西:

<!-- 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' /> 
+0

谢谢您的答复。我是wix新手。我对“wixstdba”了解不多。这是一个DLL吗?我想做什么来传递wixstdba的价值? – Programmer 2013-03-22 03:57:44

+0

wixstdba是“WiX标准引导程序应用程序”。您可以在WiX.chm中阅读它的功能。 – 2013-03-22 04:09:51

+0

通过添加上面的代码...它不会为我工作...变量要添加到哪里(在链之前或之后)? – Programmer 2013-03-22 04:18:53

相关问题