【发布时间】:2015-02-23 23:13:21
【问题描述】:
我目前正在构建一个 WiX 项目,它应该充当其他安装程序的交付包装器 - 这样我可以为任何项目制作一个 msi,将其包装在这个项目中,并拥有一个新的安装程序。
目前,我正在试验一对非常基本的安装程序——当他们安装时,他们应该创建一个文件夹并在文件夹中放置四个空文本文件。顶级 wxs 文件如下。
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="Jeremiah's Test Installer" Version="1.0.0.0" Manufacturer="Starkey" UpgradeCode="5a714642-7857-4582-8bae-80fd6d8ec77a">
<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
<Payload SourceFile="..\TestWPF003\BootstrapperCore.config"/>
<Payload SourceFile="..\TestWPF003\bin\Release\TestWPF003.dll"/>
<Payload SourceFile="C:\Program Files (x86)\WiX Toolset v3.9\SDK\Microsoft.Deployment.WindowsInstaller.dll"/>
</BootstrapperApplicationRef>
<Chain>
<!-- TODO: Define the list of chained packages. -->
<!-- <MsiPackage SourceFile="path\to\your.msi" /> -->
<PackageGroupRef Id='Netfx4Full' />
<MsiPackage SourceFile="..\beta\bin\Release\beta.msi" Id="BetaInstallId" Cache="yes" Visible="yes"/>
<MsiPackage SourceFile="..\alpha\bin\Release\alpha.msi" Id="AlphaInstallId" Cache="yes" Visible="yes"/>
</Chain>
</Bundle>
<Fragment>
<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4FullVersion" />
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4x64FullVersion" Win64="yes" />
<PackageGroup Id="Netfx4Full">
<ExePackage Id="Netfx4Full" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes"
SourceFile="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX40\dotNetFx40_Full_x86_x64.exe"
DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)" />
</PackageGroup>
</Fragment>
</Wix>
我遇到的问题是 UI 会出现,按钮会触发,并且会在 Windows 注册表中创建一个条目,说明程序已安装。但是,当我去寻找文件时,那里什么也没有。我可以扫描我的系统中的文件和文件夹名称,但它们不会出现在任何地方。如果我自己运行安装程序,则会创建文件夹并存在文件。
编辑:安装日志 - http://pastebin.com/cMFei9cr
【问题讨论】:
-
所以,我将 Visibility 更改为 false,将 Cache 更改为 always。我不知道为什么,但现在它正在安装。但是,它仍然不会卸载。
-
请提供用户临时目录中的捆绑安装日志。
-
@sean-hall - 添加了安装日志的链接
标签: c# wpf wix windows-installer