2012-10-26 29 views
11

Tôi đang sử dụng một bootstrapper tiêu chuẩn rtflicence để cài đặt dotnet trước khi msi poject của tôi trong một chuỗi.Làm cách nào để chuyển 'vị trí cài đặt' mặc định cho trình khởi động RtfLicense?

Tôi nhận thấy rằng có nút 'tùy chọn' hiển thị hộp thoại vị trí cài đặt và cho phép người dùng thay đổi thư mục cài đặt mặc định.

Tôi cần một trong hai:

  1. Ngăn chặn nút này tùy chọn từ được hiển thị, hoặc
  2. Điền vào vị trí cài đặt với đường dẫn mặc định, và vượt qua trở lại này cho trình cài đặt nên người dùng thay đổi nó.

Tôi đọc rằng có thể chuyển các biến Burn thành msipackages từ bootstrapper nhưng tôi không tìm thấy bất kỳ chi tiết nào khác và sẽ đánh giá cao việc được chỉ đúng hướng.

Cảm ơn

Trả lời

21

Để đi với tùy chọn 1, bạn phải cuộn Bootstrapper của riêng mìnhỨng dụng và xóa nút tùy chọn khỏi menu.

Tùy chọn hai thực hiện dễ dàng hơn đáng kể. Bootstrapper sử dụng biến Burn đặc biệt được gọi là InstallFolder để nhận và đặt nội dung trong khối văn bản trên chế độ xem đó, mà bạn có thể gán bên trong phần tử Bundle.

<Variable Name="InstallFolder" Type="string" Value="[ProgramFilesFolder]"/> 

Hằng ProgramFilesFolder sẽ thiết lập giá trị đó khối văn bản khi chương trình bắt đầu, và nếu người dùng duyệt đến một thư mục khác nhau, nó sẽ được lưu trữ trong biến đó tương tự. Để chuyển nó cho MSI, trong chuỗi của bạn, bạn vượt qua InstallFolder bằng cách sử dụng thẻ MsiProperty (INSTALLLOCATION là tên của thuộc tính trong dự án WiX của bạn).

<MsiPackage Vital="yes" DisplayName="Your Name" Id="MsiId" SourceFile="path/to/file.msi"> 
    <MsiProperty Name="INSTALLLOCATION" Value="[InstallFolder]" /> 
</MsiPackage> 
18

Tôi chỉ phát hiện ra tùy chọn SuppressOptionsUI nhằm giải quyết Lựa chọn của bạn mà không cần 1 cán BootstrapperApplication riêng bạn:

<?xml version="1.0" encoding="UTF-8"?> 

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"> 

    <Bundle> 
     <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"> 
     <bal:WixStandardBootstrapperApplication LicenseFile="..\eula.rtf" SuppressOptionsUI="yes"/> 
     </BootstrapperApplicationRef> 

     <Chain> 
     </Chain> 
    </Bundle> 
</Wix> 
0

Tôi nghĩ rằng bạn có thể thử gỡ bỏ các nút tùy chọn bằng cách tạo ra một chủ đề. Tôi đã không phải sử dụng các chủ đề bản thân mình nhưng đây là hai liên quan SO liên kết có thể giúp bạn có chỉ theo hướng đó:

WiX bootstrapper theme file?

Theme for my WiX Installer

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