Установка, созданная загрузчиком WiX, не запущена

Я попытался создать установочный файл с помощью Bootstrapper, который предназначен для запуска сначала установочного файла .NET framework, а затем MyApp.exe. После завершения проекта я получил окончательный установочный файл, но даже он не запускается после двойного щелчка или нажатия Enter после выбора файла. Я не знаю, где я ошибся.

Это program.cs файл:

using Microsoft.Tools.WindowsInstallerXml.Bootstrapper;
namespace testingBoot
{
    class Program:BootstrapperApplication
    {
        static void Main(string[] args)
        {
            Console.WriteLine("This is tesing for the bootStrapper");
            Console.Read();
        }

        protected override void Run()
        {
            throw new NotImplementedException();
        }
    }
}

И мой установочный файл WiX находится здесь

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">

    <Bundle UpgradeCode="46C265F4-3F60-4781-9EF6-DB889C115D55" Version="1.0.0.0">
        <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost" >
            <Payload SourceFile="BootstrapperCore.config" />
            <Payload SourceFile="C:\Program Files (x86)\WiX Toolset v3.7\SDK\Microsoft.Deployment.WindowsInstaller.dll" />
        </BootstrapperApplicationRef>
        <Variable Name="LaunchTarget"
            Value="[ProgramFiles64Folder]Folder\Exe Name.exe"/>
        <Chain>
          <PackageGroupRef Id="Netfx4Full"/>
          <ExePackage SourceFile="$(var.PATH)\testingBoot.exe"/>
        </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"
                        Name="dotNetFx40_Full_x86_x64.exe"
                        SourceFile="dotNetFx40_Full_x86_x64.exe"
                        DetectCondition="VersionNT64" />
        </PackageGroup>
    </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>

А также я изменил имя сборки под хостом на свое собственное имя сборки как testingBoot.exe в файле конфигурации BootstrapperCore.config.

Вот содержимое моего файла BootStrapperCore.config:

<configuration>
    <configSections>
        <sectionGroup
            name="wix.bootstrapper"
            type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperSectionGroup, BootstrapperCore">

            <section
                name="host"
                type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.HostSection, BootstrapperCore" />
        </sectionGroup>
    </configSections>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" />
        <supportedRuntime version="v2.0.50727" />
    </startup>
    <wix.bootstrapper>
        <host assemblyName="testingBoot" >
            <supportedFramework version="v4\Full" />
        </host>
    </wix.bootstrapper>
</configuration>

person Ramesh Karna    schedule 06.05.2013    source источник


Ответы (1)


Похоже, ваша сборка BootstrapperApplication отсутствует в элементе BootstrapperApplicationRef. Я также должен отметить, что движок Burn загружает вашу сборку BA напрямую. Он не запускает его как исполняемый файл. Таким образом, чтобы загрузить приложение BootstrapperApplication, я думаю, вы захотите внести следующие изменения:

<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost" >

  <Payload SourceFile="$(var.PATH)\testingBoot.exe"/>
  <Payload SourceFile="BootstrapperCore.config" />

  <Payload SourceFile="C:\Program Files (x86)\WiX Toolset v3.7\SDK\Microsoft.Deployment.WindowsInstaller.dll" />
</BootstrapperApplicationRef>

Это добавит testingBoot.exe в BootstrapperApplication, и если ваш файл BoostrapperCore.config будет выглядеть так:

<configuration>
  <configSections>
    <sectionGroup name="wix.bootstrapper" type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperSectionGroup, BootstrapperCore">
        <section name="host" type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.HostSection, BootstrapperCore" />
    </sectionGroup>
  </configSections>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" />
  </startup>
  <wix.bootstrapper>
    <host assemblyName="testingBoot">
        <supportedFramework version="v4\Full" />
        <supportedFramework version="v4\Client" />
    </host>
  </wix.bootstrapper>
</configuration>

Затем механизм записи найдет сборку с именем testingBoot и загрузит ее. Опять же, как отмечалось выше, testingBoot будет загружаться напрямую, а метод Run() будет вызываться напрямую. Точка входа Main() будет пропущена, поскольку механизм записи не запускает сборку как исполняемый файл.

person Rob Mensching    schedule 06.05.2013
comment
Спасибо за ваш ответ. хотя это кажется более разумным, я пробовал это со своим проектом, но все еще имею ту же проблему, файл установки не запускается. Я отредактировал свой вопрос и добавил детали моего файла конфигурации. - person Ramesh Karna; 07.05.2013
comment
encase вам нужно больше информации о моем проекте, я загрузил свой проект здесь w.mediafire.com/download.php?em5e83p03jo8zsr в VS2012 и использует WIX3.7. - person Ramesh Karna; 07.05.2013