2015-02-20 2 views
0

В настоящее время я создаю проект 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

+0

Итак, я всегда менял видимость на false и на кеш. Я не знаю почему, но теперь он устанавливается. Однако он все равно не удалит. – jpatrick

+0

Просьба предоставить журнал установки вашего пакета, находящийся в папке temp пользователя. –

+0

@ sean-hall - добавлена ​​ссылка на журнал установки – jpatrick

ответ

1

По бревну, пучок думает, что пакеты уже установлены таким образом, он не пытается установить их снова (execute:None).

Planned package: BetaInstallId, state: Present, default requested: Present, ba requested: Present, execute: None, rollback: None, cache: No, uncache: No, dependency: Register 
Planned package: AlphaInstallId, state: Present, default requested: Present, ba requested: Present, execute: None, rollback: None, cache: No, uncache: No, dependency: Register 

Я не знаю, почему так много связанных пучков:

Detected related bundle: {005cc4d6-ddbb-40e6-9b55-1e75c3fd93f7}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 
Detected related bundle: {062482ea-7e51-4d0d-bfdb-4da66a31c8d7}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 
Detected related bundle: {1c6dc0b9-8d20-4fcc-ba0f-88278407bfd7}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 
Detected related bundle: {27a27a66-9612-475b-b4c1-4b0154f2ffc1}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 
Detected related bundle: {284b58db-4377-4d3f-81f6-8683960062a8}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 
Detected related bundle: {4508d6e7-0b9d-44b5-8270-f5b2e4a9f1eb}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 
Detected related bundle: {616c17bc-349a-4fa4-a96d-44089a199e3d}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 
Detected related bundle: {85fd546d-8c91-44e1-9fcb-1a84e3727773}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 
Detected related bundle: {b48ca10f-ec2e-417e-91e2-d60a85cf08a3}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 
Detected related bundle: {c6450493-7e9e-4341-ab20-fece27d7f706}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 
Detected related bundle: {daefbdf5-330d-4ab7-b504-629c6d474142}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 
Detected related bundle: {e3eb09bd-6c1e-4969-8298-450e0041d424}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None 

Я держал пари, что это будет работать на чистой машине.

+0

Я дам этот снимок, как только смогу. Я думаю, что у меня есть виртуальная машина, которую я могу скоро раскрутить. Если у меня была куча инсталляторов, которые не удаляли бы, что лучший способ избавиться от них? Должен ли я просто удалять записи реестра? – jpatrick

Смежные вопросы