Verteilen einer gepackten Desktop-App

Wenn Sie Ihre Desktop-App in einem MSIX-Paket packen (siehe Erstellen eines MSIX-Pakets aus deinem Code), können Sie die gepackte Anwendung anschließend im Microsoft Store veröffentlichen oder auf einem oder mehreren Geräten querladen.

Hinweis

Hast du einen Plan, wie du für Benutzer den Übergang auf deine gepackte Anwendung ermöglichen möchtest? Sieht dir den Abschnitt Umstellung von Benutzern auf deine gepackte App dieser Anleitung an, um einen Eindruck davon zu erhalten, bevor du deine App verteilst.

Verteilen der App durch Veröffentlichen im Microsoft Store

Der Microsoft Store ist eine bequeme Möglichkeit für Kunden, deine App zu beziehen.

Veröffentliche deine Anwendung im Microsoft Store, um eine möglichst große Zielgruppe zu erreichen. Darüber hinaus können Unternehmenskunden deine Anwendung erwerben und sie intern in ihren Organisationen über den Microsoft Store für Unternehmen verteilen.

Wenn du eine Veröffentlichung im Microsoft Store planst, werden dir im Rahmen des Übermittlungsprozesses einige zusätzliche Fragen gestellt. Der Grund dafür ist, dass dein Paketmanifest eine eingeschränkte Funktion mit dem Namen runFullTrust deklariert und wir die Verwendung dieser Funktion durch deine Anwendung genehmigen müssen. Weitere Informationen zu dieser Anforderung findest du hier: Eingeschränkte Funktionen.

Du musst deine Anwendung nicht signieren, bevor du sie an den Store übermittelst.

Wichtig

Wenn Sie Ihre Anwendung im Microsoft Store veröffentlichen möchten, stellen Sie sicher, dass sie korrekt auf Geräten unter Windows 10 S oder Windows 11 S ausgeführt wird. Dies ist eine Store-Anforderung. Weitere Informationen finden Sie unter Testen Ihrer Windows-App für Windows 10 S oder Windows 11 S.

Verteilen der App ohne Veröffentlichung im Microsoft Store

Wenn du deine Anwendung lieber verteilen möchtest, ohne sie im Store zu veröffentlichen, kannst du Apps auf einem oder mehreren Geräten manuell verteilen.

Dies eignet sich z. B., wenn du eine bessere Kontrolle über die Verteilung haben oder dich nicht mit dem Microsoft Store-Zertifizierungsprozess auseinandersetzen möchtest.

Um deine Anwendung auf anderen Geräten zu verteilen, ohne sie im Store zu veröffentlichen, musst du ein Zertifikat einholen, deine Anwendung mit diesem Zertifikat signieren und sie anschließend auf diese Geräte querladen.

Du kannst ein Zertifikat erstellen oder eines von einem gängigen Anbieter wie z. B. Verisign erhalten.

Wenn Sie Ihre Anwendung auf Geräten mit Windows 10 S oder Windows 11 S verteilen möchten, muss Ihre Anwendung vom Microsoft Store signiert werden. Daher müssen Sie den Prozess für die Store-Übermittlung durchlaufen, bevor Sie Ihre Anwendung auf diesen Geräten verteilen können.

Wenn du ein Zertifikat erstellst, musst du es im Zertifikatspeicher Vertrauenswürdiger Stamm oder Vertrauenswürdige Personen von jedem Gerät installieren, auf dem deine App ausgeführt wird. Wenn du ein Zertifikat von einem Drittanbieter erwirbst, musst du auf anderen Systemen neben deiner App nichts weiter installieren.

Wichtig

Stelle sicher, dass der Name des Herausgebers auf dem Zertifikat dem Namen des Herausgebers deiner App entspricht.

Informationen zum Signieren deiner Anwendung mithilfe eines Zertifikats findest du unter Signieren eines Anwendungspakets mit SignTool.

Weitere Informationen zum Querladen Ihrer Anwendung auf anderen Geräten finden Sie unter Querladen von branchenspezifischen Apps in Windows.

Umstellen von Benutzern auf eine gepackte App

Bevor du deine App verteilst, solltest du das Hinzufügen einiger Erweiterungen zu deinem Paketmanifest in Betracht ziehen, damit sich Benutzer daran gewöhnen, deine gepackte App zu verwenden. Hier sind einige Dinge, die du tun kannst.

  • Verweise mit vorhandenen Startkacheln und Taskleistenschaltflächen auf deine gepackte App.
  • Ordne deine gepackte Anwendung einer Gruppe von Dateitypen zu.
  • Sorge dafür, dass deine gepackte Anwendung bestimmte Dateitypen standardmäßig öffnet.

Eine vollständige Liste der Erweiterungen und Richtlinien für deren Verwendung findest du unter Umstellen von Benutzern auf deine App.

Erwäge außerdem, deiner gepackten Anwendung Code hinzuzufügen, der die folgenden Aufgaben erledigt:

  • Migrieren von Benutzerdaten, die deiner Desktopanwendung zugeordnet sind, zu den entsprechenden Ordnerspeicherorten deiner gepackten App
  • Bereitstellen einer Option für Benutzer, die Desktopversion deiner App zu deinstallieren

Im Folgenden werden diese Aufgaben genauer beschrieben. Wir beginnen mit der Migration von Benutzerdaten.

Migrieren von Benutzerdaten

Wenn du Code hinzufügst, durch den Benutzerdaten migriert werden, empfiehlt es sich, diesen Code nur dann auszuführen, wenn die Anwendung das erste Mal gestartet wird. Bevor du die Benutzerdaten migrierst, solltest du den Benutzern ein Dialogfeld anzeigen, das erläutert, was passiert, warum dies empfohlen wird und was mit den vorhandenen Daten geschieht.

Hier ist ein Beispiel, wie du dies in einer .NET-basierten gepackten App erreichen kannst.

private void MigrateUserData()
{
    String sourceDir = Environment.GetFolderPath
        (Environment.SpecialFolder.ApplicationData) + "\\AppName";

    if (sourceDir != null)
    {
        DialogResult migrateResult = MessageBox.Show
            ("Would you like to migrate your data from the previous version of this app?",
             "Data Migration", MessageBoxButtons.YesNo);

        if (migrateResult.Equals(DialogResult.Yes))
        {
            String destinationDir =
                Windows.Storage.ApplicationData.Current.LocalFolder.Path + "\\AppName";

            Process process = new Process();
            process.StartInfo.FileName = "robocopy.exe";
            process.StartInfo.Arguments = "%LOCALAPPDATA%\\AppName " + destinationDir + " /move";
            process.StartInfo.CreateNoWindow = true;
            process.Start();
            process.WaitForExit();

            if (process.ExitCode > 1)
            {
                //Migration was unsuccessful -- you can choose to block/retry/other action
            }
        }
    }
}

Deinstallieren der Desktopversion deiner App

Die Desktopanwendung von Benutzern sollte nicht deinstalliert werden, ohne diese nach der Berechtigung zu fragen. Zeige ein Dialogfeld an, das den Benutzer um diese Berechtigung bittet. Benutzer möchten eventuell die Desktopversion deiner App nicht deinstallieren. In diesem Fall musst du entscheiden, ob du die Nutzung der Desktopanwendung blockieren oder die parallele Nutzung beider Apps unterstützen möchtest.

Hier ist ein Beispiel, wie du dies in einer .NET-basierten gepackten App erreichen kannst.

Den vollständigen Kontext dieses Codeausschnitts findest du in der Datei MainWindow.cs des Beispiels WPF-Bildanzeige mit Übergang/Migration/Deinstallation.

private void RemoveDesktopApp()
{
    //Typically, you can find your uninstall string at this location.
    String uninstallString = (String)Microsoft.Win32.Registry.GetValue
        (@"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion" +
         @"\Uninstall\{7AD02FB8-B85E-44BC-8998-F4803BA5A0E3}\", "UninstallString", null);

    //Detect if the previous version of the Desktop application is installed.
    if (uninstallString != null)
    {
        DialogResult uninstallResult = MessageBox.Show
            ("To have the best experience, consider uninstalling the "
              + " previous version of this app. Would you like to do that now?",
              "Uninstall the previous version", MessageBoxButtons.YesNo);

        if (uninstallResult.Equals(DialogResult.Yes))
        {
                    string[] uninstallArgs = uninstallString.Split(' ');

            Process process = new Process();
            process.StartInfo.FileName = uninstallArgs[0];
            process.StartInfo.Arguments = uninstallArgs[1];
            process.StartInfo.CreateNoWindow = true;

            process.Start();
            process.WaitForExit();

            if (process.ExitCode != 0)
            {
                //Uninstallation was unsuccessful - You can choose to block the application here.
            }
        }
    }

}

Nächste Schritte

Haben Sie Fragen? Stellen Sie sie in unserer Tech Community.

Wenn beim Veröffentlichen deiner Anwendung im Store Probleme auftreten, enthält dieser Blogbeitrag einige hilfreiche Tipps.