2009-07-15 36 views
11

Tôi cần bao gồm trình cài đặt .NET 3.5 sp1 đầy đủ vào trình cài đặt của tôi, trong WiX.Làm cách nào để tôi cài đặt trình cài đặt WiX với trình cài đặt .NET 3.5 sp1 hoàn toàn độc lập?

Tôi cần boostrapper đó hoàn toàn tự chứa, không có quyền truy cập web. Nó chỉ là không được phép cho trình cài đặt này để yêu cầu web; chúng tôi có khách hàng ở bên ngoài Mông Cổ (tôi nghiêm túc, không chỉ sử dụng tên địa điểm vì nó ở xa) mà chúng tôi gửi đĩa CD vì họ không có quyền truy cập internet.

Các WiX bang hướng dẫn:

<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> 

Các bootstrapper trên đòi hỏi web. Làm cách nào để tạo trình cài đặt không?

Trả lời

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> 

Trong trường hợp của bạn, biến $(bootstrapperPackagesFolder) sẽ trỏ đến C :\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\. Biến số $(cddir) là thư mục nơi bạn soạn nội dung đĩa CD cài đặt.

Tác vụ GenerateBootStrapper sẽ không chỉ tạo ra một exe bootstrapper, mà còn sao chép một thư mục DotNetFX35SP1WindowsInstaller3_1 vào cùng một vị trí. Trong quá trình cài đặt, exe bootstrapper sẽ tìm kiếm các thư mục đó và sử dụng các tệp trong đó, thay vì tải xuống chúng.

Tôi không chắc chắn ví dụ của tôi có khác với ví dụ bạn đang làm hay không; có lẽ bạn vừa quên bao gồm thư mục DotNetFX35SP1 trên đĩa CD cài đặt?

+0

Sau khi làm điều này, tôi nhận được lỗi sau: C: \ Documents and Settings \ hudson \ .hudson \ việc \ \ workspace \ \ chính \ SetupWiX \ SetupWiX.wixproj (164,5): Lỗi MSB3152: Vị trí cài đặt cho điều kiện tiên quyết chưa được đặt thành 'trang web của nhà cung cấp thành phần' và tệp 'DotNetFX35SP1 \ dotNetFX20 \ aspnet.msp' trong mục 'Khuôn khổ .NET 3.5 SP1' không thể được đặt trên đĩa. Xem Trợ giúp để biết thêm thông tin. – mmr

+0

cũng có, nó xuất hiện rằng setup.bin trong thư mục động cơ boostrapper chỉ không tìm thấy thư mục thích hợp cho sp1, mà là lạ với tôi. – mmr

+0

xin lỗi, bootstrapper – mmr

0

Bạn có thể thanh toán số Microsoft sample code, điều này là WiX không cung cấp bootstrapper/chainer - không đến cho đến khi WiX 3.5 là công cụ "Ghi".

Tôi không chắc chắn những gì bạn đang sử dụng trong ví dụ ban đầu của mình, tôi giả định msbuild hoặc thứ gì đó - không phải là thành phần WiX.

Các vấn đề liên quan