Dot-Net

如何使用完全獨立的 .NET 3.5 sp1 安裝程序製作 WiX 安裝程序?

  • July 28, 2009

我需要將完整的 .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>

上面的引導程序需要網路。我如何製作一個沒有的安裝程序?

<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 上包含該文件夾?

引用自:https://stackoverflow.com/questions/1128734