Tworzenie niestandardowych pakietów programu inicjującego

Program instalacyjny to ogólny instalator, który można skonfigurować do wykrywania i instalowania składników redystrybucyjnych, takich jak pliki Instalatora Windows (msi) i programy wykonywalne. Instalator jest również znany jako program rozruchowy. Programowany jest za pomocą zestawu manifestów XML, które określają metadane do zarządzania instalacją składnika. Każdy składnik redystrybucyjny lub warunek wstępny wyświetlany w oknie dialogowym Wymagania wstępne dla technologii ClickOnce jest pakietem programu inicjujący . Pakiet programu inicjujący to grupa katalogów i plików zawierających pliki manifestu, które opisują sposób instalowania wymagań wstępnych.

Program inicjujący najpierw wykrywa, czy jakiekolwiek z wymagań wstępnych zostały już zainstalowane. Jeśli wymagania wstępne nie są zainstalowane, najpierw program inicjuje umowy licencyjne. Po drugie, po zaakceptowaniu przez użytkownika końcowego umów licencyjnych instalacja rozpoczyna się od wymagań wstępnych. W przeciwnym razie, jeśli zostaną wykryte wszystkie wymagania wstępne, program uruchamia tylko instalator aplikacji.

Tworzenie niestandardowych pakietów programu inicjjącego

Manifesty programu inicjjącego można wygenerować przy użyciu edytora XML w programie Visual Studio. Aby zobaczyć przykład tworzenia pakietu programu inicjującego, zobacz Przewodnik: tworzenie niestandardowego programu inicjującego z monitem o prywatność.

Aby utworzyć pakiet programu inicjujący, należy utworzyć manifest produktu i dla każdej zlokalizowanej wersji składnika manifest pakietu.

  • Manifest produktu product.xml zawiera wszelkie metadane neutralne dla języka dla pakietu. Zawiera metadane wspólne dla wszystkich zlokalizowanych wersji składnika redystrybucyjnego. Aby utworzyć ten plik, zobacz Instrukcje: tworzenie manifestu produktu.

  • Manifest pakietu package, package.xml, zawiera metadane specyficzne dla języka; zazwyczaj zawiera zlokalizowane komunikaty o błędach. Składnik musi mieć co najmniej jeden manifest pakietu dla każdej zlokalizowanej wersji tego składnika. Aby utworzyć ten plik, zobacz Instrukcje: tworzenie manifestu pakietu.

Po utworzeniu tych plików umieść plik manifestu produktu w folderze o nazwie niestandardowego programu inicjjącego. Plik manifestu pakietu przechodzi do folderu o nazwie dla ustawień regionalnych. Jeśli na przykład plik manifestu pakietu jest przeznaczony do redystrybucji w języku angielskim, umieść plik w folderze o nazwie en. Powtórz ten proces dla każdego ustawienia regionalnego, takiego jak ja dla języka japońskiego i de dla języka niemieckiego. Ostateczny niestandardowy pakiet programu inicjjącego może mieć następującą strukturę folderów.

CustomBootstrapperPackage
  product.xml
  CustomBootstrapper.msi
  de
    eula.rtf
    package.xml
  en
    eula.rtf
    package.xml
  ja
    eula.rtf
    package.xml

Następnie skopiuj pliki redystrybucyjne do lokalizacji folderu programu inicjjącego. Aby uzyskać więcej informacji, zobacz How to: Create a localized bootstrapper package (Instrukcje: tworzenie zlokalizowanego pakietu programu inicjjącego).

*\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages*

or

*<VS Install Path>\MSBuild\Microsoft\VisualStudio\BootstrapperPackages*

Uwaga

Ścieżka wymieniona powyżej w ścieżce instalacji programu Visual Studio działa od wersji Visual Studio 2019 Update 7.

Możesz również znaleźć lokalizację folderu programu inicjjącego z wartości Ścieżka w następującym kluczu rejestru:

*HKLM\Software\Microsoft\GenericBootstrapper*

W systemach 64-bitowych użyj następującego klucza rejestru:

*HKLM\Software\Wow6432Node\Microsoft\GenericBootstrapper*

Każdy składnik redystrybucyjny jest wyświetlany we własnym podfolderze w katalogu packages. Pliki manifestu produktu i pakietu redystrybucyjnego muszą zostać umieszczone w tym podfolderze. Zlokalizowane wersje składników i manifestów pakietu muszą być umieszczone w podfolderach nazwanych zgodnie z nazwą kultury.

Po skopiowaniu tych plików do folderu programu inicjjącego pakiet programu inicjjącego zostanie automatycznie wyświetlony w oknie dialogowym Wymagania wstępne programu Visual Studio. Jeśli niestandardowy pakiet programu inicjuje się, zamknij i otwórz ponownie okno dialogowe Wymagania wstępne . Aby uzyskać więcej informacji, zobacz Okno dialogowe Wymagania wstępne.

W poniższej tabeli przedstawiono właściwości, które są automatycznie wypełniane przez program inicjujący.

Właściwości opis
ApplicationName Nazwa aplikacji.
Processorarchitecture Procesor i bity na słowo platformy objętej plikiem wykonywalnym. Wartości obejmują następujące wartości:

-Intel
- IA64
- AMD64
VersionNT Numer wersji dla systemów operacyjnych Windows. Składnią wersji jest Major.Minor.ServicePack.
VersionMSI Wersja zestawu Instalatora Windows (msi.dll) do uruchomienia podczas instalacji.
Administracja User Ta właściwość jest ustawiana, jeśli użytkownik ma uprawnienia administratora. Wartości są prawdziwe lub fałszywe.
InstallMode Tryb instalacji wskazuje, skąd należy zainstalować składnik. Wartości obejmują następujące wartości:

— Witryna główna — wymagania wstępne są instalowane z witryny sieci Web dostawcy.
- SpecificSite — wymagania wstępne są instalowane z wybranej lokalizacji.
— SameSite — wymagania wstępne są instalowane z tej samej lokalizacji co aplikacja.

Oddzielanie pakietów redystrybucyjnych od instalacji aplikacji

Możesz uniemożliwić wdrażanie plików redystrybucyjnych w projektach instalacyjnych. W tym celu utwórz listę redystrybucyjnej w folderze RedistList w katalogu programu .NET Framework:

%ProgramFiles%\Microsoft.NET\RedistList

Lista redystrybucyjny to plik XML, który należy nazwać przy użyciu następującego formatu: <Nazwa> firmy.<Nazwa> składnika. RedistList.xml. Na przykład jeśli składnik nosi nazwę DataWidgets made by Acme, użyj elementu Acme.DataWidgets.RedistList.xml. Przykład zawartości listy redystrybucyjnej może wyglądać następująco:

<?xml version="1.0" encoding="UTF-8"?>
<FileList Redist="Acme.DataWidgets" >
<File AssemblyName="Acme.DataGrid" Version="1.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" Culture="neutral" ProcessorArchitecture="MSIL" InGAC="true" />
</FileList>