如何使用完全独立的.NET 3.5 sp1安装程序制作WiX安装程序?

时间:2009-07-15 00:07:20

标签: .net msbuild installer windows-installer offline

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

我需要将boostrapper完全自包含,完全没有Web访问权限。这个安装程序不允许要求Web;我们有外地蒙古的客户(我很认真,不仅仅是使用地名,因为它很遥远)我们运送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>

上述引导程序需要Web。如何制作没有的安装程序?

2 个答案:

答案 0 :(得分: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任务不仅会生成bootstrapper exe,还会将DotNetFX35SP1WindowsInstaller3_1文件夹复制到同一位置。在安装过程中,bootstrapper exe将查找这些文件夹并使用其中的文件,而不是下载它们。

我不确定我的例子是否与你正在做的不同;也许你只是忘了在安装光盘上包含DotNetFX35SP1文件夹?

答案 1 :(得分:0)

你可以查看这个Microsoft sample code,问题是WiX没有提供引导程序/链接器 - 直到WiX 3.5作为“刻录”工具才会出现。

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