我试图设置使用单选按钮(单用户安装到应用程序数据和ALLUSERS安装到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>
目前发生了什么,当我运行它,是它试图在电子商务安装:而不是正确的应用程序数据, AppData文件夹。此外,安装程序错误并且UI不显示。如果我硬编码值LocalAppDataFolder
而不是通过变量传递它,这不会发生。我在安装过程中运行了一个日志,当我浏览安装程序时,我可以看到INSTALLSCOPE的值被更改,但UI永不更新以反映此更改,实际安装路径也不会更改。任何帮助都会很棒。
试图寻找到文件WixUI_Advanced.wxs(如果你还没有把),其中实现UI模板,功能,您试图实现。它可能会帮助你。我认为最简单的方法就是从UI模板中复制InstallScopeDlg的东西,并创建自己的InstallScopeDlg.wxs克隆并根据需要进行编辑,或者从那里复制功能。 – Mischo5500
谢谢。我会研究这一点。这些模板可以在这里找到(https://github.com/AnalogJ/Wix3.6Toolset),并且似乎与新版本的Wix不兼容。 – user5521
它不是官方的WiX存储库,它位于这里[link](https://github.com/wixtoolset/)。上周我使用了从WiX4分支到WiX3.10工具集的模板,它工作正常。 – Mischo5500