我正在创建一个由Wix安装的程序,使用VS 2010,我已经准备好了product.wxs.
在我的wxs文件中,我有目录定义,如下所示:
<SetDirectory Id="INSTALLFOLDER" Value="[WindowsVolume]Myapp" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLFOLDER" Name="Myapp">
<Directory Id="Myapp_Installer_Dir" Name="Myapp">
<Directory Id="BIN" Name="Bin" />
<Directory Id="ICONS" Name="Icons" />
</Directory>
</Directory>
</Directory>
Run Code Online (Sandbox Code Playgroud)
然后我得到了这些文件安装定义:
<DirectoryRef Id="Myapp_Installer_Dir">
<Component Id="INSTALLER_Myapp" Guid="{94F18477-8562-4004-BC6F-5629CC19E4CB}" >
<File Source="$(var.Myapp.TargetPath)" KeyPath="yes"/>
</Component>
</DirectoryRef>
<DirectoryRef Id="BIN">
<Component Id="INSTALLER_Data" Guid="{545FB5DD-8A52-44D7-898E-7316E70A93F5}" >
<File Source="$(var.Data.TargetPath)" KeyPath="yes"/>
</Component>
...
Run Code Online (Sandbox Code Playgroud)
它继续以这种方式.还定义了"ICONS"目录的文件.
我也在使用WixUI_InstallDir对话框,我也提供了这些行:
<Property Id="WIXUI_INSTALLDIR" Value="Myapp_Installer_Dir" />
<UIRef Id="WixUI_InstallDir" />
Run Code Online (Sandbox Code Playgroud)
问题是当用户安装程序并更改安装文件夹的值时,"Bin"和"Icons"的文件安装到正确的路径,但Myapp目标安装到定义的修复位置start作为默认安装路径.
为什么只将bin和icon文件安装到用户想要的正确文件夹中,但myapp目标却没有?
我有一个带有类型编辑控件的Wix对话框(这是服务所依赖的服务器的uri).
如何在输入值之前禁用"下一步"按钮?
我需要我的安装程序接受密码,所以我创建了一个对话框,提示用户输入两次密码(以避免错误),但是我遇到了一些问题,但是我的"你的密码不匹配"标签在正确的时间出现和消失.
这是我到目前为止:
<Control Id="Password" Type="Edit" Property="VDIR_PASSWORD" Password="yes" />
<Control Id="ConfirmPassword" Type="Edit" Property="ConfirmPassword" Password="yes" />
<Control Id="PasswordMismatchLabel" Type="Text" Text="Passwords do not match.">
<Condition Action="hide">VDIR_PASSWORD = ConfirmPassword</Condition>
</Control>
Run Code Online (Sandbox Code Playgroud)
这会编译,但标签永远不会显示.(如果我反转条件然后标签显示,但如果它们不匹配则不会消失).
我可以看到,我缺少的是订阅某些事件,只要发生某些事情就会更新标签(例如,用户按下某个键,或者从任一控件中丢失焦点),但是我无法找到任何文档或我如何实现这一目标的例子.
是否有可能做到这一点?