2016-05-31 6 views
1

Я новичок в Wix, и мой вопрос на самом деле не в том, как я могу исправить эту конкретную проблему, но как мне это сделать? какие шаги вы предпримете для «отладки» этого?Узнайте, почему Wix Bootstrapper создал MSI, который является «недопустимым»

Имея это в виду, это моя текущая проблема:

Всякий раз, когда я пытаюсь открыть мой MSI, что Загрузчик построил я получаю:

enter image description here

Как я могу идти о корневой причиной этого ??

Выход из билда:

Build started 31/05/2016 14:00:50. 
Project "C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build" on node 1 (Bundle target(s)). 
Bundle: 
    TEST: ClientInstaller.wxs;WebSiteContent.wxs;IISConfiguration.wxs 
    "C:\Program Files (x86)\WiX Toolset v3.10\bin\candle" -ext WixBalExtension -ext WixNetFxExtension -ext WixUtilExtension "..\MyProjBootStrapper\Bundle.wxs" -dpub 
    lishDir=..\Setup\publish\ 
    Windows Installer XML Toolset Compiler version 3.10.3.2924 
    Copyright (c) .NET Foundation and contributors. All rights reserved. 

    Bundle.wxs 
C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@RepairCommand attribute value '' should contain '/q' when the ExePacka ge/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@UninstallCommand attribute value '' should contain '/q' when the ExePa ckage/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@RepairCommand attribute value '' should contain '/norestart' when the 
ExePackage/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@UninstallCommand attribute value '' should contain '/norestart' when t he ExePackage/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@RepairCommand attribute value '' should contain '/chainingpackage' whe n the ExePackage/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@UninstallCommand attribute value '' should contain '/chainingpackage' 
when the ExePackage/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
    "C:\Program Files (x86)\WiX Toolset v3.10\bin\light" "Bundle.wixobj" -ext WixBalExtension -ext WixNetFxExtension -ext WixUtilExtension -out bin\Release\Setup. 
    msi 
    Windows Installer XML Toolset Linker version 3.10.3.2924 
    Copyright (c) .NET Foundation and contributors. All rights reserved. 

C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\Bundle.wixobj : warning LGHT1109: Found mismatched entry point <Bundle>. Expected <Product> for specified output pack age type .msi. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
    Install package has been created. 
Done Building Project "C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build" (Bundle target(s)). 


Build succeeded. 

"C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build" (Bundle target) (1) -> 
(Bundle target) -> 
    C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@RepairCommand attribute value '' should contain '/q' when the ExePac kage/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
    C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@UninstallCommand attribute value '' should contain '/q' when the Exe Package/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
    C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@RepairCommand attribute value '' should contain '/norestart' when th e ExePackage/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
    C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@UninstallCommand attribute value '' should contain '/norestart' when the ExePackage/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
    C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@RepairCommand attribute value '' should contain '/chainingpackage' w hen the ExePackage/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
    C:\MyProj\MyProj\src\MyProj.Net\MyProjBootStrapper\Bundle.wxs(31): warning CNDL1136: The ExePackage/@UninstallCommand attribute value '' should contain '/chainingpackage ' when the ExePackage/@Protocol attribute is set to 'netfx4'. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 
    C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\Bundle.wixobj : warning LGHT1109: Found mismatched entry point <Bundle>. Expected <Product> for specified output pa ckage type .msi. [C:\MyProj\MyProj\src\MyProj.Net\MyProjClientInstaller\setup.build] 

    7 Warning(s) 
    0 Error(s) 

Time Elapsed 00:00:02.32 

Так предупреждение, но ничего такого, что, кажется, указует на плохую установку ?? В частности, как я вынула .net вещи сейчас:

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 


<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" 
    xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"> 
    <Bundle Name="MyBootStrapper" Version="1.0.0.0" Manufacturer="Microsoft" UpgradeCode="71d3e0df-abd8-450e-a8e0-ade54891fc4f"> 
     <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 

     <Chain> 
      <!-- TODO: Define the list of chained packages. --> 
      <!-- <MsiPackage SourceFile="path\to\your.msi" /> --> 
     <!--<PackageGroupRef Id="Netfx4Full"/>--> 
     <MsiPackage Id="ClientInstaller" SourceFile="..\MyClientInstaller\bin\Release\ClientSetup.msi" /> 
     </Chain> 
    </Bundle> 
    <Fragment> 
    <!-- Check for .NET 4.0-->  
    <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" 
        /> 
    <PackageGroup Id ="Netfx4Full"> 
     <ExePackage Id="Netfx4Full" 
        DisplayName="Microsoft .Net Framework" 
        Cache="yes" 
        Compressed="yes" 
        PerMachine="yes" 
        Permanent="yes" 
        Protocol="netfx4" 
        Vital="yes" 
        SourceFile="redist\dotNetFx40_Full_x86_x64.exe" 
        InstallCommand="/passive /norestart /q /chainingpackage" 
        DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)" 
        /> 


    </PackageGroup> 
    </Fragment> 
</Wix> 

Я строю в MSBuild с этой командой:

<Target Name="Bundle"> 
    <!--  At last create install bundle--> 
    <Message Text="TEST: @(WixCode)"/> 
    <Exec 
     Command='"$(WixPath)candle" -ext WixBalExtension -ext WixNetFxExtension -ext WixUtilExtension "$(BootStrapperPath)Bundle.wxs" -dpublishDir=$(Publish)' 
     ContinueOnError="false" 
     WorkingDirectory="." /> 
    <Exec 
     Command='"$(WixPath)light" "Bundle.wixobj" -ext WixBalExtension -ext WixNetFxExtension -ext WixUtilExtension -out $(BundleOut)' 
     ContinueOnError="false" 
     WorkingDirectory="." /> 


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

Я продолжаю думать «сжечь» должен быть где-то там, но учебники, которые я нашел до сих пор, кажется, не предложить ...

Я также пытался строить это в Visual Studio, и я получаю тот же результат (это шаблон загрузчик)

---- UPDATE ----

Если я построю его как .exe, это нормально!

ответ

3

Это предупреждение говорит вам именно то, что проблема

warning LGHT1109: Found mismatched entry point <Bundle>. 
        Expected <Product> for specified output package type .msi. 

Связка является ех монтажников, а не MSI.

+0

Таким образом, не возможно иметь комплект MSI? Как запутанно, что целевой шаблон по умолчанию - .msi! Спасибо :) – chrispepper1989

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