Как мне создать установщик WiX с полностью автономным установщиком .NET 3.5 sp1?

StackOverflow https://stackoverflow.com/questions/1128734

Вопрос

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

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

В руководстве по 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>

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

Это было полезно?

Решение

<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 задача не только сгенерирует исполняемый файл загрузчика, но и скопирует DotNetFX35SP1 и еще WindowsInstaller3_1 папку в том же месте.Во время установки загрузчик exe будет искать эти папки и использовать содержащиеся в них файлы, а не загружать их.

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top