Udostępnij przez


Ręczne tworzenie pliku Instalatora aplikacji

W tym artykule omówiono, jak ręcznie utworzyć plik Instalatora aplikacji, który definiuje powiązany zestaw z funkcjami automatycznego aktualizowania i naprawiania. Powiązany zestaw nie jest jedną jednostką, ale raczej kombinacją głównego pakietu i opcjonalnych pakietów.

Aby móc zainstalować powiązany zestaw jako jedną jednostkę, musimy mieć możliwość określenia głównego pakietu i opcjonalnego pakietu jako jednej. W tym celu należy utworzyć plik XML z rozszerzeniem appinstaller , aby zdefiniować powiązany zestaw. Instalator aplikacji korzysta z pliku *.appinstaller i umożliwia użytkownikowi zainstalowanie wszystkich zdefiniowanych pakietów jednym kliknięciem.

Podczas wdrażania plik Instalatora aplikacji będzie:

  • Pakiet aplikacji systemu Windows, do którego odwołuje się atrybut URI elementu < MainPackage >, zweryfikuje atrybuty Name, Publisher i Version docelowego pakietu aplikacji systemu Windows. Jeśli element Package/Identity w manifeście pakietu aplikacji systemu Windows nie jest zgodny, instalacja zakończy się niepowodzeniem.
  • Utwórz odwołanie do identyfikatorów URI aktualizacji i napraw dla rodziny pakietu.

Jak utworzyć plik Instalatora aplikacji

Aby dystrybuować powiązany zestaw jako jedną jednostkę, należy utworzyć plik Instalatora aplikacji zawierający elementy wymagane przez ten schemat instalatora aplikacji.

  1. Utwórz plik *.AppInstaller.
  2. Określ atrybuty pliku Instalatora aplikacji.
  3. Określ główny pakiet aplikacji systemu Windows.
  4. Określ powiązany zestaw pakietu opcjonalnego.
  5. Określ zależność pakietu frameworka aplikacji Windows.
  6. Określ ścieżki URI aktualizacji.
  7. Podaj ścieżki URI do naprawy.
  8. Określ ustawienia aktualizacji.
Przykład pliku Instalatora aplikacji

Po wykonaniu powyższych kroków pomyślnie utworzono plik Instalatora aplikacji podobny do następującego:

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <OptionalPackages>
        <Bundle
            Name="Contoso.OptionalApp1"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp1.msixbundle" />

        <Bundle
            Name="Contoso.OptionalApp2"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp2.msixbundle" />

        <Package
            Name="Fabrikam.OptionalApp3"
            Publisher="CN=Fabrikam"
            Version="10.34.54.23"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix"
            ProcessorArchitecture="x64" />
    </OptionalPackages>

    <UpdateURIs>
        <UpdateURI>http://mywebservice.azurewebsites.net/appset.appinstaller</UpdateURI>
        <UpdateURI>http://mywebservice2.azurewebsites.net/appset.appinstaller</UpdateURI>
    </UpdateURIs>

    <RepairURIs>
        <RepairURI>http://mywebservice.azurewebsites.net/appset.appinstaller</RepairURI>
        <RepairURI>http://mywebservice2.azurewebsites.net/appset.appinstaller</RepairURI>
    </RepairURIs>

    <UpdateSettings>
        <OnLaunch HoursBetweenUpdateChecks="0"/>   
    </UpdateSettings>

</AppInstaller>

Krok 1. Tworzenie pliku *.appinstaller

Za pomocą edytora tekstów (Notepad.exe) utwórz nowy plik z rozszerzeniem nazwy pliku *. AppInstaller

Instrukcje:
  1. Otwórz menu Start.
  2. Wpisz następujące: notepad.exe.
  3. Otwórz menu Plik .
  4. Wybierz pozycję Zapisz jako z menu rozwijanego.

Krok 2. Dodawanie szablonu podstawowego

AppInstaller Dołącz element do pliku Instalatora aplikacji, zwracając uwagę na wersję, ścieżkę i lokalizację sieci pliku Instalatora aplikacji. Informacje w elemencie AppInstaller zostaną wykorzystane podczas instalowania skojarzonych aplikacji systemu Windows.

Składnik Opis
xmlns Przestrzeń nazw XML
Wersja Wersja pliku Instalatora Aplikacji w notacji czteropunktowej (1.0.0.0).
URI Ścieżka URI do bieżącego pliku Instalatora aplikacji, do którego urządzenie może uzyskać dostęp.
Instrukcje:
  1. Otwórz plik utworzony w kroku 1.

  2. Skopiuj następującą zawartość XML do pliku *.AppInstaller.

    <?xml version="1.0" encoding="utf-8"?>
    <AppInstaller
        xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
        Version=""
        Uri="" >
    </AppInstaller>
    
  3. Aktualizowanie atrybutu Version przy użyciu wersji pliku Instalatora aplikacji

  4. Zaktualizuj atrybut URI przy użyciu lokalizacji sieciowej, z której plik .AppInstaller będzie dostępny.

Krok 3. Dodawanie informacji o głównym pakiecie

Element <MainPackage> i <MainBundle> służy do identyfikowania podstawowej aplikacji systemu Windows, która zostanie zainstalowana przy użyciu pliku Instalatora aplikacji. Element <MainPackage> jest używany, gdy instalator aplikacji systemu Windows jest *.msix lub *.appx. Użyj <MainBundle>, gdy instalator aplikacji systemu Windows jest zestawem instalatora aplikacji systemu Windows z rozszerzeniem *.msixbundle lub *.appxbundle.

Składnik Opis
Nazwa Nazwa podstawowej aplikacji, która jest dystrybuowana za pośrednictwem pliku Instalatora aplikacji. Można to znaleźć, uruchamiając następujące polecenie cmdlet programu PowerShell: $(Get-AppxPackage [AppName]).Name.
Wydawca Nazwa kanoniczna certyfikatu wydawcy użytego do podpisania podstawowego instalatora aplikacji systemu Windows. Można to znaleźć, uruchamiając następujące polecenie cmdlet programu PowerShell: $(Get-AppxPackage [AppName]).Publisher.
wersja Wersja podstawowego instalatora aplikacji systemu Windows w notacji czworokątnej (1.0.0.0). Można to znaleźć, uruchamiając następujące polecenie cmdlet programu PowerShell: $(Get-AppxPackage [AppName]).Version.
Architektura procesora Architektura instalowana przez podstawowy instalator aplikacji systemu Windows.
URI Ścieżka identyfikatora URI do podstawowego nośnika instalacyjnego aplikacji systemu Windows.

Informacje w atrybucie <MainBundle> lub <MainPackage> powinny być zgodne z elementem Package/Identity odpowiednio w manifeście pakietu aplikacji lub manifeście pakietu aplikacji.

Instalator aplikacji systemu Windows

Jeśli głównym pakietem aplikacji jest plik msix lub .appx, użyj polecenia <MainPackage>, jak pokazano poniżej. Pamiętaj, aby uwzględnić architekturę procesora, ponieważ jest ona obowiązkowa dla pakietów niebędących częścią zestawu.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainPackage
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        ProcessorArchitecture="x64"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msix" />

</AppInstaller>
Instalator pakietu aplikacji systemu Windows

Jeśli głównym pakietem aplikacji jest msixbundle lub appxbundle, użyj <MainBundle> w miejsce <MainPackage> , jak pokazano poniżej. W przypadku pakietów parametr ProcessorArchitecture nie jest wymagany.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

</AppInstaller>

Krok 4. Dodawanie opcjonalnych pakietów

Podobnie jak atrybut głównego pakietu aplikacji, jeśli opcjonalny pakiet może być pakietem aplikacji lub pakietem zbiorczym aplikacji, element podrzędny w ramach atrybutu <OptionalPackages> powinien być <Package> lub <Bundle> odpowiednio. Informacje o pakiecie w elementach podrzędnych powinny być zgodne z elementem identyfikacji w manifeście pakietu lub manifestem pakietu.

Składnik Opis
Nazwa Nazwa opcjonalnej aplikacji, która jest dystrybuowana za pomocą pliku Instalatora aplikacji. Można to znaleźć, uruchamiając następujące polecenie cmdlet programu PowerShell: $(Get-AppxPackage [AppName]).Name.
Wydawca Nazwa kanoniczna certyfikatu wydawcy użytego do podpisania opcjonalnego instalatora aplikacji systemu Windows. Można to znaleźć, uruchamiając następujące polecenie cmdlet programu PowerShell: $(Get-AppxPackage [AppName]).Publisher.
wersja Wersja opcjonalnego instalatora aplikacji systemu Windows w notacji czteropunktowej (1.0.0.0). Można to znaleźć, uruchamiając następujące polecenie cmdlet programu PowerShell: $(Get-AppxPackage [AppName]).Version.
Architektura procesora Architektura instalowana przez opcjonalny instalator aplikacji systemu Windows.
URI Ścieżka identyfikatora URI do podstawowego nośnika instalacyjnego aplikacji systemu Windows.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <OptionalPackages>
        <Bundle
            Name="Contoso.OptionalApp1"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp1.msixbundle" />

        <Package
            Name="Fabrikam.OptionalApp3"
            Publisher="CN=Fabrikam"
            Version="10.34.54.23"
            ProcessorArchitecture="x64"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix" />

    </OptionalPackages>

</AppInstaller>

Krok 5. Dodawanie zależności

W elemencie dependencies można określić wymagane pakiety struktury dla głównego pakietu lub opcjonalnych pakietów.

Składnik Opis
Nazwa Nazwa aplikacji zależności, do której następuje dystrybucja za pośrednictwem pliku Instalatora aplikacji. Można to znaleźć, uruchamiając następujące polecenie cmdlet programu PowerShell: $(Get-AppxPackage [AppName]).Name.
Wydawca Nazwa kanoniczna certyfikatu wydawcy użytego do podpisania zależności Instalatora aplikacji systemu Windows. Można to znaleźć, uruchamiając następujące polecenie cmdlet programu PowerShell: $(Get-AppxPackage [AppName]).Publisher.
wersja Wersja instalatora aplikacji Windows dla zależności w notacji czteropunktowej (1.0.0.0). Można to znaleźć, uruchamiając następujące polecenie cmdlet programu PowerShell: $(Get-AppxPackage [AppName]).Version.
Architektura procesora Architektura, na którą jest instalowany zależny instalator aplikacji Windowsa.
URI Ścieżka identyfikatora URI do nośnika instalacyjnego aplikacji zależności w systemie Windows.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <Dependencies>
        <Package 
            Name="Microsoft.VCLibs.140.00" 
            Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" 
            Version="14.0.24605.0" ProcessorArchitecture="x86" Uri="http://foobarbaz.com/fwkx86.appx" />
        <Package 
            Name="Microsoft.VCLibs.140.00" 
            Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" 
            Version="14.0.24605.0" 
            ProcessorArchitecture="x64" 
            Uri="http://foobarbaz.com/fwkx64.appx" />
    </Dependencies>

</AppInstaller>

Krok 6. Dodawanie ustawienia aktualizacji

Plik Instalatora aplikacji może również określać ustawienie aktualizacji, tak aby powiązane zestawy mogły być automatycznie aktualizowane po opublikowaniu nowszego pliku Instalatora aplikacji. <UpdateSettings> to opcjonalny element. W obszarze <UpdateSettings> opcja OnLaunch określa, że należy przeprowadzić sprawdzanie aktualizacji podczas uruchamiania aplikacji, a HoursBetweenUpdateChecks="12" określa, że sprawdzanie aktualizacji powinno być przeprowadzane co 12 godzin. Jeśli parametr HoursBetweenUpdateChecks nie zostanie określony, domyślny interwał używany do sprawdzania dostępności aktualizacji wynosi 24 godziny. Dodatkowe typy aktualizacji, takie jak aktualizacje w tle, można znaleźć w schemacie Ustawienia aktualizacji; Dodatkowe typy aktualizacji podczas uruchamiania, takie jak aktualizacje z monitem, można znaleźć w schemacie OnLaunch

Pierwiastki Opis
GodzinyMiędzySprawdzaniemAktualizacji Definiuje minimalną lukę w sprawdzaniu aktualizacji aplikacji systemu Windows.
AktualizacjaBlokujeAktywację Definiuje doświadczenie podczas sprawdzania dostępności aktualizacji aplikacji.
Wyświetl Monit Określa, czy okno jest wyświetlane podczas instalowania aktualizacji i kiedy są sprawdzane aktualizacje.
Wymuś aktualizację z dowolnej wersji Określa, że następną wersją aplikacji może być nowsza lub starsza wersja. Jeśli wartość True, wszystkie dla obu, jeśli wartość False (wartość domyślna), zostaną zainstalowane tylko nowe wersje.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12"
            UpdateBlocksActivation="true"
            ShowPrompt="true" />
        <AutomaticBackgroundTask />
        <ForceUpdateFromAnyVersion>true</ForceUpdateFromAnyVersion>
    </UpdateSettings>

</AppInstaller>

Krok 7. Dodawanie ustawień automatycznej aktualizacji

Ważne

Następujące ustawienia są dostępne tylko w przypadku korzystania ze schematu 2021 w wersji Windows Insider na Windows 10.

Aplikacje systemu Windows zainstalowane przy użyciu pliku Instalatora aplikacji będą domyślnie aktualizować swoją aplikację systemu Windows z identyfikatora URI Instalatora aplikacji, zgodnie z konfiguracjami ustawionymi w poprzednim kroku. Identyfikatory URI aktualizacji skonfigurowane w tym kroku będą działać jako rezerwowe identyfikatory URI, których można użyć, jeśli oryginalny identyfikator URI instalatora aplikacji nie jest już dostępny. Dla dowolnej aplikacji systemu Windows można skonfigurować maksymalnie 10 identyfikatorów URI aktualizacji.

Identyfikatory URI aktualizacji powinny wskazywać na pliki Instalatora aplikacji.

Uwaga / Notatka

Te ustawienia działają tylko wtedy, gdy schemat jest skonfigurowany jako 2021 lub nowszy.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12" />
    </UpdateSettings>

    <UpdateUris>
        <UpdateUri>https://www.contoso.com/Installers/MainApp.AppInstaller</UpdateUri>
        <UpdateUri>\\ServerName\Share\Installers\MainApp.AppInstaller</UpdateUri>
    </UpdateUris>

</AppInstaller>

Krok 8. Dodawanie ustawień automatycznego naprawiania

Ważne

Następujące ustawienia są dostępne tylko w przypadku korzystania ze schematu 2021 w wersji Windows Insider na Windows 10.

Aplikacje systemu Windows zainstalowane na urządzeniu mogą obsługiwać automatyczne naprawianie aplikacji systemu Windows, gdy zostanie ona naruszona. Instalator źródłowy, który będzie używany do naprawy aplikacji systemu Windows, można skonfigurować za pomocą <RepairURIs> właściwości . Aplikacja systemu Windows podejmie próbę naprawy na podstawie identyfikatora URI Instalatora aplikacji. Jeśli jest on niedostępny, aplikacja systemu Windows użyje identyfikatorów URI naprawy, aby zidentyfikować źródło naprawy. Dla dowolnej aplikacji systemu Windows można skonfigurować maksymalnie 10 adresów URL naprawy.

Identyfikator URI naprawy może być skierowany na aplikacje systemu Windows lub pliki instalatora aplikacji. To ustawienie nie wymaga zainstalowania aplikacji systemu Windows przy użyciu pliku Instalatora aplikacji.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12" />
    </UpdateSettings>

    <RepairUris>
        <RepairUri></RepairUri>
        <RepairUri></RepairUri>
    </RepairUris>

</AppInstaller>

Aby uzyskać wszystkie szczegółowe informacje na temat schematu XML, zobacz Dokumentacja pliku Instalatora aplikacji.

Uwaga / Notatka

Typ pliku Instalatora aplikacji jest nowy w systemie Windows 10 w wersji 1709 (windows 10 Fall Creators Update). Nie ma obsługi wdrażania aplikacji systemu Windows 10 przy użyciu pliku Instalatora aplikacji w poprzednich wersjach systemu Windows 10. Element HoursBetweenUpdateChecks jest dostępny począwszy od systemu Windows 10, wersja 1803.