2017-02-14 25 views
2

メイン.msiインストーラの前に.netフレームワークバージョン4.6.1をインストールするためにWixバンドリングを使用しています。私はReviewerInstaller.msiがメインのインストーラでファイル Wixインストールパッケージを開くことができませんでした

<?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> 

ここ http://wixtoolset.org/downloads/v3.11.0.1307/wix311.exe

最新の毎週のリリースである3.11を設定WiXのツールを使用してファイルですBundle.wxs

ています。私は光とろうそくを使ってインストーラを構築しています。

"C:\プログラムファイル(x86の)\ WiXのツールセットv3.11の\ビン\キャンドル" -ext WixBalExtension -ext WixIISExtension -ext WixUtilExtension -ext WixSqlExtension -ext WixNetFxExtension -dpublishDir = .. \ binにReviewer.Web \ \ PackageTmp -dMyWebResourceDir =。 Bundle.wxs WindowsインストーラXMLツールセットコンパイラバージョン3.11.0.1307 Copyright(c).NET Foundation and contributors。全著作権所有。

Bundle.wxs "C:\プログラムファイル(x86の)\ WiXのツールセットv3.11の\ビン\光" -ext WixBalExtension -ext WixIISExtension -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -ext WixSqlExtension -outのbin \ Release \ ReviewerInstallerPrerequisite.msi Bundle.wixobj WindowsインストーラXMLツールセットリンカバージョン3.11.0.1307 Copyright(c).NET Foundation and contributors。全著作権所有。

c:\ Projects \ NewCheckout \ reviewer \ RevieweBootstrapper \ Bundle.wixobj:warning LGHT1109:一致しないエントリポイントが見つかりました。指定された出力パッケージタイプ.msiが必要です。 [c:\ Projects \ reviewer \ RevieweBootstrapper \ setup.build] インストールパッケージが作成されました。 ビルドプロジェクト "c:\ Projects \ reviewer \ RevieweBootstrapper \ setup.build"(WIXターゲット)。

ビルドに成功しました。

"C:\プロジェクト\投稿者\ RevieweBootstrapper \ setup.build"(WIX目標)(1) - > (WIXターゲット) - > C:プロジェクト\投稿者\ \ RevieweBootstrapper \ Bundle.wixobj:警告LGHT1109 :一致しないエントリポイントが見つかりました。指定された出力パッケージタイプ.msiが必要です。 [C:プロジェクト\ \校閲\ RevieweBootstrapperの\のsetup.build]

私が構築されたインストーラをしようとしていますとき、ビルドは、しかし、前述の警告で成功し、私は次のエラー

「このインストールパッケージを取得していますアプリケーションベンダーに問い合わせて、これが有効なWindowsインストーラパッケージであることを確認してください。 "

これを解決する方法を教えてください。

私がテストすると、参考までにメインインストーラがうまく動作します。

<?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> 

<?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 = "WebComponents")を使用して移入され、メインのインストーラで参照さらに2つのWXSファイルがあります:ここでは

主インストーラのWXSファイルですヒートコマンド

+0

だけでは、あなたのMSI(バンドルの一部ではないが)インストールすることができますか? –

+0

MSIのインストールに失敗した場合は、バンドルではなくMSI用にWiXを送信してください。 – PhilDW

+0

はい、私はmsiインストーラーを単独でテストしても問題ありません。 –

答えて

2

私はターゲットを ""と指定しなければなりませんでした。exeファイル $(WixPath)ビン\キャンドル 『-ext WixBalExtension -ext"ろうそくを使用してインストーラを構築し、光

とき拡張子とこれは私が私のsetup.buildファイル に持っていたろうそくのコマンドであるを.MSIありません』 WixIISExtension -ext WixUtilExtension -ext WixSqlExtension -ext WixNetFxExtension -dpublishDir = $(公開)-dMyWebResourceDir =。-dTargetExt = .exeの-dTargetFileName = ReviewerInstaller.exe @(WixCode、' ')

これは「光コマンド です$(WixPath)bin \ light "-ext WixBalExtension -ext WixIExExtension -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -ext Wi xSqlExtension -out $(ExeOut)(WixObject、' ')@

変数$(WixPath)はsetup.build

で定義されている私は、Visual Studioデベロッパーコマンドでプロンプト

を次のコマンドを使用してプロジェクトをビルドしますここで
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> 
関連する問題