Tworzenie manifestu produktu
Aby wdrożyć wymagania wstępne dla aplikacji, możesz utworzyć pakiet programu inicjjącego. Pakiet programu inicjjącego zawiera pojedynczy plik manifestu produktu, ale manifest pakietu dla każdego ustawienia regionalnego. Manifest pakietu zawiera aspekty specyficzne dla lokalizacji pakietu. Obejmuje to ciągi, umowy licencyjne użytkownika końcowego i pakiety językowe.
Aby uzyskać więcej informacji na temat manifestów pakietów, zobacz How to: Create a package manifest (Instrukcje: tworzenie manifestu pakietu).
Tworzenie manifestu produktu
Aby utworzyć manifest produktu
Utwórz katalog dla pakietu programu inicjatora. W tym przykładzie użyto języka C:\package.
W programie Visual Studio utwórz nowy plik XML o nazwie product.xml i zapisz go w folderze C:\package .
Dodaj następujący kod XML, aby opisać przestrzeń nazw XML i kod produktu dla pakietu. Zastąp kod produktu unikatowym identyfikatorem pakietu.
<Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="Custom.Bootstrapper.Package">
Dodaj kod XML, aby określić, że pakiet ma zależność. W tym przykładzie jest używana zależność od Instalatora Microsoft Windows 3.1.
<RelatedProducts> <DependsOnProduct Code="Microsoft.Windows.Installer.3.1" /> </RelatedProducts>
Dodaj kod XML, aby wyświetlić listę wszystkich plików znajdujących się w pakiecie programu inicjujący. W tym przykładzie użyto nazwy pliku pakietu CorePackage.msi.
<PackageFiles> <PackageFile Name="CorePackage.msi"/> </PackageFiles>
Skopiuj lub przenieś plik CorePackage.msi do folderu C:\package .
Dodaj kod XML, aby zainstalować pakiet przy użyciu poleceń programu inicjjącego. Program uruchamiający automatycznie dodaje flagę /qn do pliku msi , który zostanie zainstalowany w trybie dyskretnym. Jeśli plik jest plikiem exe, program rozruchowy uruchamia plik exe przy użyciu powłoki. Poniższy kod XML nie wyświetla żadnych argumentów w pliku CorePackage.msi, ale argument wiersza polecenia można umieścić w atrybucie
Arguments
.<Commands> <Command PackageFile="CorePackage.msi" Arguments="">
Dodaj następujący kod XML, aby sprawdzić, czy jest zainstalowany ten pakiet programu inicjjącego. Zastąp kod produktu identyfikatorem GUID składnika redystrybucyjnego.
<InstallChecks> <MsiProductCheck Property="IsMsiInstalled" Product="{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"/> </InstallChecks>
Dodaj kod XML, aby zmienić zachowanie programu inicjujący w zależności od tego, czy składnik programu inicjujący jest już zainstalowany. Jeśli składnik jest zainstalowany, pakiet programu inicjujący nie zostanie uruchomiony. Poniższy kod XML sprawdza, czy bieżący użytkownik jest administratorem, ponieważ ten składnik wymaga uprawnień administracyjnych.
<InstallConditions> <BypassIf Property="IsMsiInstalled" Compare="ValueGreaterThan" Value="0"/> <FailIf Property="AdminUser" Compare="ValueNotEqualTo" Value="True" String="NotAnAdmin"/> </InstallConditions>
Dodaj kod XML, aby ustawić kody zakończenia, jeśli instalacja zakończy się pomyślnie i jeśli jest konieczne ponowne uruchomienie. Poniższy kod XML przedstawia kody zakończenia Fail i FailReboot, które wskazują, że program inicjujący nie będzie kontynuować instalowania pakietów.
<ExitCodes> <ExitCode Value="0" Result="Success"/> <ExitCode Value="1641" Result="SuccessReboot"/> <ExitCode Value="3010" Result="SuccessReboot"/> <DefaultExitCode Result="Fail" String="GeneralFailure"/> </ExitCodes>
Dodaj następujący kod XML, aby zakończyć sekcję dla poleceń programu inicjjącego.
</Command> </Commands>
Przenieś folder C:\package do katalogu programu Visual Studio inicjatora. W przypadku starszych wersji programu Visual Studio jest to katalog \Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages .
Przykład
Manifest produktu zawiera instrukcje dotyczące instalacji niestandardowych wymagań wstępnych.
<?xml version="1.0" encoding="utf-8" ?>
<Product
xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
ProductCode="Custom.Bootstrapper.Package">
<RelatedProducts>
<DependsOnProduct Code="Microsoft.Windows.Installer.3.1" />
</RelatedProducts>
<PackageFiles>
<PackageFile Name="CorePackage.msi"/>
</PackageFiles>
<InstallChecks>
<MsiProductCheck Property="IsMsiInstalled"
Product="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"/>
</InstallChecks>
<Commands>
<Command PackageFile="CorePackage.msi" Arguments="">
<InstallConditions>
<BypassIf Property="IsMsiInstalled"
Compare="ValueGreaterThan" Value="0"/>
<FailIf Property="AdminUser"
Compare="ValueNotEqualTo" Value="True"
String="NotAnAdmin"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<DefaultExitCode Result="Fail" String="GeneralFailure"/>
</ExitCodes>
</Command>
</Commands>
</Product>