在WiX 3.7中结合绝对路径和相对路径
我正在尝试使用在WiX 3.7中结合绝对路径和相对路径,wix,wix3,wix3.7,Wix,Wix3,Wix3.7,我正在尝试使用RemoveFolderEx在卸载应用程序时从我的安装文件夹中删除一级文件夹。以下是我所拥有的,但它不起作用: <Fragment> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="MyAppBaseFolder" Name="MyAppID">
RemoveFolderEx
在卸载应用程序时从我的安装文件夹中删除一级文件夹。以下是我所拥有的,但它不起作用:
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="MyAppBaseFolder" Name="MyAppID">
<Directory Id="INSTALLFOLDER" Name="MyAppLauncher">
<Directory Id="UPDATESCRIPTSFOLDER" Name="Scripts" />
<Component Id="CleanupMainApplicationFolder" Guid="*">
<RegistryValue Root="HKLM" Key="SOFTWARE\MyApp ID\MyApp ID Windows Client" Name="Path" Type="string" Value="${path::getfullpath(path::combine([INSTALLFOLDER],'..\MyApp'))}" KeyPath="yes" />
<util:RemoveFolderEx On="uninstall" Property="APPLICATIONFOLDER" />
</Component>
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="MyApp ID"/>
</Directory>
</Directory>
</Fragment>
您在
注册表值/@Value
中的语法看起来像NAnt之类的。目前尚不清楚是什么解释了这一点,但Windows安装程序不会。您有几个选项可以正确获取注册表值。首先,将RegistryValue
元素更改为如下所示:
<RegistryValue Root="HKLM"
Key="SOFTWARE\MyApp ID\MyApp ID Windows Client"
Name="Path"
Type="string"
Value="[MyAppBaseFolder]MyApp"
KeyPath="yes" />
<RegistryValue Root="HKLM"
Key="SOFTWARE\MyApp ID\MyApp ID Windows Client"
Name="Path"
Type="string"
Value="[MyAppFolder]"
KeyPath="yes" />
然后更新您的RegistryValue
元素,使其看起来像:
<RegistryValue Root="HKLM"
Key="SOFTWARE\MyApp ID\MyApp ID Windows Client"
Name="Path"
Type="string"
Value="[MyAppBaseFolder]MyApp"
KeyPath="yes" />
<RegistryValue Root="HKLM"
Key="SOFTWARE\MyApp ID\MyApp ID Windows Client"
Name="Path"
Type="string"
Value="[MyAppFolder]"
KeyPath="yes" />
我更喜欢后者,但那只是因为我更喜欢使用标识符而不连接字符串。非常感谢(再次)Rob!你写答案时,我正在更新我的帖子。的确是南特。我想在将随机代码插入XML之前,我应该仔细阅读这些文章:)。我现在要试试你的建议。
<RegistryValue Root="HKLM"
Key="SOFTWARE\MyApp ID\MyApp ID Windows Client"
Name="Path"
Type="string"
Value="[MyAppFolder]"
KeyPath="yes" />