2012-10-26 7 views
11

Używam standardowego bootstrappera do instalacji dotnet przed moim msi posem w łańcuchu.Jak przekazać domyślną lokalizację instalacji do programu ładującego RtfLicense?

Zauważyłem, że jest przycisk "Opcje", który wyświetla okno dialogowe lokalizacji instalacji i pozwala użytkownikowi zmienić domyślny katalog instalacyjny.

muszę albo:

  1. Prevent jest wyświetlany przycisk opcji z lub
  2. Wypełnianie lokalizację instalacji z domyślnej ścieżki, i przekazać to z powrotem do instalatora użytkownik powinien go zmienić.

Przeczytałem, że możliwe jest przekazywanie zmiennych Burn do msipackages z bootstrappera, ale nie znalazłem żadnych dalszych szczegółów i byłbym wdzięczny za wskazanie we właściwym kierunku.

Dzięki

Odpowiedz

21

Aby przejść z opcji 1, trzeba było toczyć własną BootstrapperApplication i usunąć przycisk opcji z menu.

Opcja druga jest znacznie łatwiejsza do wdrożenia. Program ładujący używa specjalnej zmiennej Burn o nazwie InstallFolder, aby pobrać i ustawić zawartość bloku tekstowego w tym widoku, który można przypisać wewnątrz elementu Bundle.

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

Stała ProgramFilesFolder ustawia wartość tego bloku tekstu po uruchomieniu programu, a jeśli użytkownik przejdzie do innego katalogu, zostanie on zapisany w tej samej zmiennej. Aby przekazać go do MSI, należy w łańcuchu podać numer InstallFolder, używając znacznika MsiProperty (INSTALLLOCATION to nazwa właściwości w projekcie WiX).

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

Właśnie odkryłem opcję SuppressOptionsUI rozwiązującą opcję 1 bez toczenia własne BootstrapperApplication:

<?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> 
Powiązane problemy