11

我需要将完整的 .NET 3.5 sp1 安装程序包含在我的安装程序中,该安装程序位于 WiX 中。

我需要那个助推器完全独立,根本没有网络访问权限。只是不允许此安装程序需要网络;我们在外蒙古有客户(我是认真的,不只是使用地名,因为它是偏远的)我们向他们运送 CD,因为他们根本无法访问互联网。

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>

上面的引导程序需要网络。我如何制作一个没有的安装程序?

4

2 回答 2

8

<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)变量是您编写安装 CD 内容的文件夹。

GenerateBootStrapper任务不仅会生成一个引导程序 exe,还会将一个DotNetFX35SP1和一个WindowsInstaller3_1文件夹复制到同一位置。在安装过程中,引导程序 exe 将查找这些文件夹并使用其中的文件,而不是下载它们。

我不确定我的示例是否与您已经在做的不同;也许您只是忘记DotNetFX35SP1在安装 CD 上包含该文件夹?

于 2009-07-15T12:36:51.033 回答
0

您可以查看此Microsoft 示例代码,问题是 WiX 不提供引导程序/链接器 - 直到 WiX 3.5 作为“刻录”工具才会出现。

我不确定您在原始示例中使用的是什么,我假设msbuild或其他东西 - 这不是 WiX 组件。

于 2009-07-15T22:08:05.643 回答