2017-02-14 1 views
2

주 .msi 설치 프로그램을 시작하기 전에 .net 프레임 워크 버전 4.6.1을 설치하기 위해 Wix 번들을 사용하고 있습니다. 내가 윅스 도구는 최신 주간 릴리스 여기 http://wixtoolset.org/downloads/v3.11.0.1307/wix311.exeWix 설치 패키지를 열 수 없습니다.

인 3.11를 설정 사용하고하는 것은 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 파일 (x 86) \ 윅스 도구 집합 V3.11의 \ 빈 \ 촛불"-ext WixBalExtension -ext WixIISExtension -ext WixUtilExtension -ext WixSqlExtension -ext WixNetFxExtension -dpublishDir = .. \ Reviewer.Web 빈 \ \ PackageTmp -dMyWebResourceDir =. Bundle.wxs Windows Installer XML 도구 집합 컴파일러 버전 3.11.0.1307 Copyright (c) .NET Foundation 및 Contributors. 판권 소유.

Bundle.wxs "C : \ Program 파일 (x 86) \ 윅스 도구 집합 V3.11의 \ 빈 \ 빛"-ext WixBalExtension -ext WixIISExtension -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -ext WixSqlExtension -out 빈 \ Release \ ReviewerInstallerPrerequisite.msi Bundle.wixobj Windows Installer XML Toolset Linker 버전 3.11.0.1307 Copyright (c) .NET Foundation 및 Contributors. 판권 소유.

c : \ Projects \ NewCheckout \ reviewer \ RevieweBootstrapper \ Bundle.wixobj : 경고 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")를 사용하여 채워집니다 설치 메인 화면에서 참조 두 개 더 WXS 파일이 있습니다 : 여기

주요 설치에 대한 WXS 파일입니다 열 명령

+0

를 설치할 수 있습니까도 내 setup.build의 내용입니까? –

+0

MSI 설치가 실패하면 WiX에 번들이 아닌 MSI를 게시하십시오. – PhilDW

+0

예, msi 설치 관리자 만 테스트했는데 정상적으로 작동합니다. –

답변

2

대상을 ""으로 지정해야했습니다.EXE "확장 및 촛불 빛을 사용하여 설치 프로그램을 만들 때 을에 .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 -out $ (ExeOut) @ (WixObject, ' '는)

변수 $ (WixPath는)

내가

프롬프트 비주얼 스튜디오 개발자 명령에서 다음 명령을 사용하여 프로젝트를 빌드 setup.build에 정의되어 있습니다 여기
msbuild /target:WIX setup.build 

은 혼자 MSI (번들의 일부가)

<?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> 
관련 문제