Как мне сделать установщик WiX с полностью автономным установщиком .NET 3.5 sp1? - PullRequest
11 голосов
/ 15 июля 2009

Мне нужно включить полный установщик .NET 3.5 sp1 в мой установщик, который находится в WiX.

Мне нужно, чтобы этот ускоритель был полностью автономным, без веб-доступа вообще. Это просто не разрешено для этого установщика требовать сети; у нас есть клиенты во внешней Монголии (я серьезно, не просто использую название места, потому что оно удаленное), которым мы отправляем компакт-диски, потому что у них вообще нет доступа к Интернету.

В руководстве по WiX указано:

<Target Name="AfterBuild">
    <GenerateBootstrapper ApplicationFile="$(TargetFileName)" 
                      ApplicationName="My Application Name"
                      BootstrapperItems="@(BootstrapperFile)"
                      ComponentsLocation="Relative"
                      CopyComponents="True"
                      OutputPath="$(OutputPath)"
                      Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\"/>
</Target>

Для вышеуказанного загрузчика требуется сеть. Как мне сделать установщик, который не делает?

Ответы [ 2 ]

8 голосов
/ 15 июля 2009

<Project ToolsVersion="3.5"
   xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1" >
           <ProductName>.NET Framework 3.5 SP1</ProductName>
        </BootstrapperFile>
        <BootstrapperFile Include="Microsoft.Windows.Installer.3.1" >
           <ProductName>Windows Installer 3.1</ProductName>
        </BootstrapperFile>
    </ItemGroup>

    <Target Name="setup">
        <GenerateBootstrapper
            ApplicationFile="myproduct.msi"
            ApplicationName="myproduct"
            BootstrapperItems="@(BootstrapperFile)"
            Path="$(bootstrapperPackagesFolder)"
            ComponentsLocation="Relative"
            OutputPath="$(cddir)"
            Culture="en"/>
    </Target>

</Project>

В вашем случае переменная $(bootstrapperPackagesFolder) будет указывать на C :\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\. Переменная $(cddir) - это папка, в которую вы создаете содержимое установочного компакт-диска.

Задача GenerateBootStrapper не только сгенерирует загрузчик exe, но также скопирует папку DotNetFX35SP1 и WindowsInstaller3_1 в то же место. Во время установки загрузчик exe будет искать эти папки и использовать файлы, а не загружать их.

Я не уверен, отличается ли мой пример от того, что вы уже делаете; может, вы просто забыли включить папку DotNetFX35SP1 на установочный компакт-диск?

0 голосов
/ 16 июля 2009

Вы можете оформить этот пример кода Microsoft , дело в том, что WiX не предоставляет загрузчик / цепочку - это не произойдет, пока WiX 3.5 не станет инструментом «Записать».

Я не уверен, что вы используете в своем исходном примере, я предполагаю msbuild или что-то еще - что не является компонентом WiX.

...