【发布时间】:2016-08-02 09:07:37
【问题描述】:
我正在尝试使用单选按钮设置两个不同的安装位置(单个用户安装到 AppData,所有用户安装到 ProgramFiles)
我的属性定义如下:
<Property Id="INSTALLSCOPE" Secure="yes" />
我的安装目录定义如下:
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id= 'INSTALLSCOPE' Name='AppData'>
<Directory Id='MYAPP' Name='COMPANY'>
<Directory Id='INSTALLDIR' Name='MyApp'>
我的单选按钮如下:
<Dialog Id="CustomInstallScopeDlg" Width="370" Height="270" Title="[ProductName] Install Scope"
NoMinimize="yes">
<Control Id="RadioButtonGroupID" Type="RadioButtonGroup" X="30" Y="94" Width="305" Height="100" Property="INSTALLSCOPE">
<RadioButtonGroup Property="INSTALLSCOPE">
<RadioButton Value="LocalAppDataFolder" X="0" Y="0" Width="300" Height="10" Text="SingleUser"/>
<RadioButton Value="ProgramFilesFolder" X="0" Y="20" Width="300" Height="10" Text="AllUser"/>
</RadioButtonGroup>
</Control>
...
更改单选按钮并单击 NEXT 按钮后,会发生以下情况:
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes"
Text="[ButtonText_Next]">
<Publish Property="INSTALLSCOPE" Value="LocalAppDataFolder">INSTALLSCOPE = "LocalAppDataFolder"</Publish>
<Publish Property="INSTALLSCOPE" Value="ProgramFilesFolder">INSTALLSCOPE = "ProgramFilesFolder"</Publish>
</Control>
目前,当我运行它时,它会尝试安装在 E:AppData 中,而不是正确的 AppData 文件夹。安装程序也出现错误,UI 不显示。如果我硬编码值 LocalAppDataFolder 而不是通过变量传递它,则不会发生这种情况。我在安装过程中运行了一个日志,当我通过安装程序时,我可以看到 INSTALLSCOPE 的值发生了变化,但 UI 永远不会更新以反映这种变化,实际安装路径也不会改变。任何帮助都会很棒。
【问题讨论】: