2017-02-14 11 views
2

Я использую набор Wix для установки .NET Framework версии 4.6.1 перед основным установщиком .msi. Я использую Wix набор инструментов 3.11, который является последним еженедельный выпуск http://wixtoolset.org/downloads/v3.11.0.1307/wix311.exeWix Пакет установки не может быть открыт

Вот файл Bundle.wxs

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension" 
    xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"> 
    <Bundle Name="RevieweBootstrapper" Version="1.0.0.0" Manufacturer="Microsoft" UpgradeCode="37650dfa-8f11-4934-82fd-f720d95c86d7"> 
     <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"> 
      <bal:WixStandardBootstrapperApplication 
      LicenseFile="License.rtf" 
      ShowVersion="yes" 
      /> 
     </BootstrapperApplicationRef> 
    <Chain> 
      <PackageGroupRef Id="NetFx461Web"/> 
      <MsiPackage Id = "Reviewer.Setup" SourceFile="..\ReviewerInstaller\bin\Release\ReviewerInstaller.msi" /> 
     </Chain> 
    </Bundle> 
</Wix> 

Файл ReviewerInstaller.msi является основным инсталлятор. Я использую свет и свечу, чтобы построить установщик.

"C: \ Program Files (x86) \ WiX Toolset v3.11 \ Bin \ свеча" -ext WixBalExtension -ext WixIISExtension -ext WixUtilExtension -ext WixSqlExtension -ext WixNetFxExtension -dpublishDir = .. \ Reviewer.Web \ Bin \ PackageTmp -dMyWebResourceDir =. Bundle.wxs Windows Installer XML Toolset Компилятор версии 3.11.0.1307 Copyright (c) .NET Foundation и вкладчики. Все права защищены.

Bundle.wxs "C: \ Program Files (x86) \ WiX Toolset v3.11 \ Bin \ свет" -ext WixBalExtension -ext WixIISExtension -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -ext WixSqlExtension -out бин \ Release \ ReviewerInstallerPrerequisite.msi Bundle.wixobj Windows Installer XML Toolset Ссылка на файл 3.11.0.1307 Copyright (c) .NET Foundation и вкладчики. Все права защищены.

c: \ Projects \ NewCheckout \ reviewer \ RevieweBootstrapper \ Bundle.wixobj: предупреждение LGHT1109: обнаружена несогласованная точка входа. Ожидается для указанного типа выходного пакета .msi. [c: \ Projects \ reviewer \ RevieweBootstrapper \ setup.build] Установочный пакет создан. Done Building Project "c: \ Projects \ reviewer \ RevieweBootstrapper \ setup.build" (цель (ы) WIX).

Строительство выполнено успешно.

"C: \ Проекты \ рецензент \ RevieweBootstrapper \ setup.build" (целевая WIX) (1) -> (цель WIX) -> C: \ Projects \ обозревателем \ RevieweBootstrapper \ Bundle.wixobj: предупреждение LGHT1109 : Обнаружена несогласованная точка входа. Ожидается для указанного типа выходного пакета .msi. [C: \ Projects \ рецензента \ RevieweBootstrapper \ setup.build]

Билд преуспевает с упомянутым предупреждением, однако, когда я пытаюсь встроенный инсталлятор, я получаю следующее сообщение об ошибке

«Этот установочный пакет не удалось открыть. Обратитесь к поставщику приложения, чтобы убедиться, что это действительный пакет установщика Windows «

не могли бы вы помочь мне решить эту проблему?

Только для справки главный установщик отлично работает, когда я его тестирую.

Вот WXS файл для основной программы установки:

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="*" Name="Reviewer" Language="1033" Version="1.0.0.0" Manufacturer="Eurotherm By Schneider-Electric" UpgradeCode="a3f989dc-6e50-4513-a692-09cd080673bc"> 
     <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

     <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
    <Media Id="1" Cabinet="cab1.cab" EmbedCab="yes" /> 

     <Feature Id="ProductFeature" Title="ReviewerInstaller" Level="1"> 
      <ComponentGroupRef Id="ProductComponents" /> 
     <ComponentGroupRef Id="WebComponents"/> 
     <ComponentGroupRef Id="ReviewerIssConfiguration"/> 
    </Feature> 
    </Product> 

    <Fragment> 
     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="CommonAppDataFolder"> 
       <Directory Id="Company" Name="Eurotherm"> 
        <Directory Id="INSTALLFOLDER" Name="Reviewer" /> 
       </Directory> 
      </Directory> 
     </Directory> 
    </Fragment> 

    <Fragment> 
     <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
      <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. --> 
      <!-- <Component Id="ProductComponent"> --> 
       <!-- TODO: Insert files, registry keys, and other resources here. --> 
      <!-- </Component> --> 
     </ComponentGroup> 
    </Fragment> 
</Wix> 

Существует еще два WXS файлы, указанные в основной программе установки

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension"> 
    <Fragment> 
    <DirectoryRef Id="INSTALLFOLDER"> 
     <Component Id="ReviewerAppPool" Guid="" KeyPath="yes"> 
     <iis:WebAppPool Id="ReviewerAppPool" 
         Name="Reviewer" 
         Identity="applicationPoolIdentity" 
         ManagedPipelineMode="Integrated" 
         ManagedRuntimeVersion="v4.0" /> 
     </Component> 

     <Component Id="InstallWebsite" Guid="" KeyPath="yes"> 
     <!-- Install to default web site --> 
     <iis:WebSite Id="ReviewerWebsite" Description='Reviewer' Directory='INSTALLFOLDER' AutoStart='yes' StartOnInstall='yes'> 
      <iis:WebAddress Id="AllUnassigned" Port="80" /> 
      <iis:WebApplication Id="ReviewerApplication" Name="[ReviewerWebsite][WEBSITE_ID]" WebAppPool="ReviewerAppPool"></iis:WebApplication> 
     </iis:WebSite> 
     </Component> 
    </DirectoryRef> 

    <ComponentGroup Id="ReviewerIssConfiguration"> 
     <ComponentRef Id="InstallWebsite" /> 
     <ComponentRef Id="ReviewerAppPool" /> 
    </ComponentGroup> 
    </Fragment> 
</Wix> 

Другой WXS файл (Id = "веб-компоненты") заполняется с использованием команда нагрева

+0

ли может быть установлен отдельно ваш MSI (не входит в комплект)? –

+0

Если программа MSI не работает, отправьте свой WiX для MSI, а не пакет. – PhilDW

+0

Да, я протестировал один установщик MSI, и он отлично работает. –

ответ

2

Я должен был указать цель как «.ехе "расширение и не .msi при создании установки с помощью свечи и свет

Это свеча команда, которую я имел в моем файле setup.build „$ (WixPath) бен \ свеча“-ext WixBalExtension -ext WixIISExtension -ext WixUtilExtension -ext WixSqlExtension -ext WixNetFxExtension -dpublishDir = $ (Опубликовать) -dMyWebResourceDir =. -dTargetExt = .exe -dTargetFileName = ReviewerInstaller.exe @ (WixCode, ' ')

Это команда света " $ (WixPath) bin \ light "-ext WixBalExtension -ext WixIISExtension -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -ext Wi xSqlExtension отъезд $ (ExeOut) @ (WixObject, ' ')

переменные $ (WixPath) определяются в setup.build

Я строй проекта, используя следующую команду в Command Visual Studio Developer Prompt

msbuild /target:WIX setup.build 

Здесь также содержание моего setup.build

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="3.5" DefaultTargets="Build" 
     xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <WebSiteSource>..\DemoWebsite\</WebSiteSource> 
    <Publish>..\Reviewer.Web\bin\PackageTmp</Publish> 
    <ExeOut>bin\Release\ReviewerInstaller.exe</ExeOut> 
    <WixPath>C:\Program Files (x86)\WiX Toolset v3.11\</WixPath> 
    </PropertyGroup> 

    <!-- The list of WIX input files --> 
    <ItemGroup> 
    <WixCode Include="Bundle.wxs" /> 
    </ItemGroup> 

    <!-- The list of WIX after candle files --> 
    <ItemGroup> 
    <WixObject Include="Bundle.wixobj" /> 
    </ItemGroup> 

    <!-- Define creating installer in another target --> 
    <Target Name="Harvest"> 
    <!-- Harvest all content of published result --> 
    <Exec 
     Command='"$(WixPath)bin\heat" dir $(Publish) -dr INSTALLFOLDER -ke -srd -cg WebComponents -var var.publishDir -gg -out $(WebSiteContentCode)' 
     ContinueOnError="false" 
     WorkingDirectory="." /> 
    </Target> 
    <Target Name="WIX"> 
    <!--  At last create an installer --> 
    <Exec 
     Command='"$(WixPath)bin\candle" -ext WixBalExtension -ext WixIISExtension -ext WixUtilExtension -ext WixSqlExtension -ext WixNetFxExtension -dpublishDir=$(Publish) -dMyWebResourceDir=. -dTargetExt=.exe -dTargetFileName=ReviewerInstaller.exe @(WixCode, &apos; &apos;)' 
     ContinueOnError="false" 
     WorkingDirectory="." /> 
    <Exec 
     Command='"$(WixPath)bin\light" -ext WixBalExtension -ext WixIISExtension -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -ext WixSqlExtension -out $(ExeOut) @(WixObject, &apos; &apos;)' 
     ContinueOnError="false" 
     WorkingDirectory="." /> 

    <!-- A message at the end --> 
    <Message Text="Install package has been created." /> 
    </Target> 
</Project>