2009-07-15 77 views
11

我需要將完整的.NET 3.5 sp1安裝程序包含到我的安裝程序中,該安裝程序位於WiX中。如何使用完全自包含的.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> 

上述引導程序需要的網頁。我如何製作一個安裝程序?

回答

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,還會將DotNetFX35SP1WindowsInstaller3_1文件夾複製到同一位置。在安裝過程中,引導程序exe會查找這些文件夾並使用其中的文件,而不是下載它們。

我不知道我的例子與你已經做的不同,也許你忘了在安裝光盤上包含DotNetFX35SP1文件夾?

+0

這樣做後,我得到以下錯誤: C:\ Documents和Settings \哈德森\ .hudson \工作\ \工作區\ \主\ SetupWiX \ SetupWiX.wixproj(164,5):錯誤MSB3152:先決條件的安裝位置尚未設置爲「組件供應商的網站」,且項目「.NET Framework 3.5 SP1」中的文件「DotNetFX35SP1 \ dotNetFX20 \ aspnet.msp」無法位於磁盤上。請參閱幫助瞭解更多信息。 – mmr 2009-07-15 17:10:17

0

您可以結算這Microsoft sample code,事情是,WiX不提供引導程序/ chainer - 這是不是直到WiX 3.5作爲「燒傷」工具來。

我不確定你在原始的例子中使用了什麼,我假設msbuild什麼的 - 這不是一個WiX組件。

相關問題