В настоящее время я создаю проект WiX, который должен выступать в качестве обертки доставки для других инсталляторов. Таким образом, я могу создать msi для любого проекта, обернуть его в этом проекте и новый установщик.Установщик Wix с WPF UI не работает 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>
Проблема я наталкиваюсь в том, что пользовательский интерфейс будет отображаться, кнопки будут работать, и запись будет сделана в реестре Windows, говоря, что была установлена программа. Однако, когда я иду искать файлы, ничего не будет. Я могу подметать мою систему для имен файлов и папок, но они нигде не будут присутствовать. Если я запускаю установщиков самостоятельно, папки создаются и файлы присутствуют.
Edit: Установка Log - http://pastebin.com/cMFei9cr
Итак, я всегда менял видимость на false и на кеш. Я не знаю почему, но теперь он устанавливается. Однако он все равно не удалит. – jpatrick
Просьба предоставить журнал установки вашего пакета, находящийся в папке temp пользователя. –
@ sean-hall - добавлена ссылка на журнал установки – jpatrick