Ihr Installer – wichtige GrundlagenKnow your installer

In diesem Artikel werden die Dinge aufgeführt, die Sie kennen müssen, bevor Sie Ihr vorhandenes Installationsprogramm in eine msix konvertieren.This article lists the things you need to know before you convert your existing installer into an MSIX. Sie müssen möglicherweise nicht viel tun, um die Anwendung für den Verpackungsprozess vorzubereiten, aber wenn eines der unten aufgeführten Elemente für Ihre Anwendung gilt, müssen Sie es vor der Paket Erstellung beheben.You might not have to do much to get your application ready for the packaging process, but if any of the items below applies to your application, you need to address it before packaging.

  • Ihre Anwendung verfügt über einen Dienst .Your application has a service . Wir unterstützen die Umstellung von Anwendungen mit Diensten, aber es ist wichtig, die Einschränkungen bei der Dienst Umstellung zu berücksichtigen.We support converting applications with services, but its important to keep in mind the limitations to converting a service. Nach der Konvertierung benötigen Sie Administratorrechte, um die msix zu installieren, die einen Dienst enthält.After conversion, you will need admin elevation in order to install the MSIX that contains a service. Sie können eine Anwendung mit Diensten in Version 1.2019.1220.0 des msix-Paketierungs Tools konvertieren, und Sie können die msix mit Diensten bereitstellen, beginnend mit der Spring 2020-Version von Windows 10.You can convert an application with services beginning in version 1.2019.1220.0 of the MSIX Packaging Tool, and you can deploy the MSIX with services beginning in the spring 2020 release of Windows 10.

  • Das Installationsprogramm erfordert einen Neustart .Your installer requires a restart . Wenn das Installationsprogramm einen Neustarterfordert, wird dies im msix-pakettool ab Version 1.2019.701.0 unterstützt.If your installer requires a restart, this is supported in the MSIX Packaging Tool beginning in version 1.2019.701.0. Wenn das Installationsprogramm einen ungewöhnlichen Exitcode zurückgibt, um anzugeben, dass ein Neustart erforderlich ist, sollten Sie ihn dem Abschnitt Neustart-Beendigungs Codes der msix-pakettoolseinstellungen hinzufügen.If your installer returns an uncommon exit code to indicate it needs a restart, you should add it to the restart exit codes section of the MSIX Packaging Tool settings.

  • Ihre .NET-Anwendung erfordert eine Version des .NET-Frameworks, die älter als 4.6.2 ist .Your .NET application requires a version of the .NET Framework earlier than 4.6.2 . Wenn Sie eine .NET-Anwendung verpacken, wird empfohlen, dass Ihre Anwendung auf .NET Framework 4.6.2 oder höher ausgerichtet ist.If you are packaging a .NET application, we recommend that your application target .NET Framework 4.6.2 or later. Die Möglichkeit, verpackte Desktopanwendungen zu installieren und auszuführen, wurde erstmals in Windows 10, Version 1607 (auch als Anniversary Update bezeichnet), eingeführt, und diese Betriebssystemversion enthält standardmäßig das .NET Framework 4.6.2.The ability to install and run packaged desktop applications was first introduced in Windows 10, version 1607 (also called the Anniversary Update), and this OS version includes the .NET Framework 4.6.2 by default. Spätere Betriebssystemversionen enthalten höhere Versionen des .NET Frameworks.Later OS versions include later versions of the .NET Framework. Eine vollständige Liste, welche Versionen von .NET in höheren Versionen von Windows 10 enthalten sind, finden Sie in diesem Artikel.For a full list of what versions of .NET are included in later versions of Windows 10, see this article.

    Es wird erwartet, dass die Verwendung von Versionen des .NET-Frameworks vor 4.6.2 in verpackten Desktopanwendungen in den meisten Fällen funktioniert.Targeting versions of the .NET Framework earlier than 4.6.2 in packaged desktop applications is expected to work in most cases. Wenn Sie jedoch eine ältere Version als 4.6.2 ins Auge fassen, sollten Sie Ihre verpackte Desktopanwendung vollständig testen, bevor Sie sie an die Benutzer verteilen.However, if you target an earlier version than 4.6.2, you should fully test your packaged desktop application before distributing it to users.

    • 4.0 - 4.6.1: Anwendungen, die auf diese Versionen des .NET-Frameworks ausgerichtet sind, können voraussichtlich ab 4.6.2 oder höher ohne Probleme ausgeführt werden.4.0 - 4.6.1: Applications that target these versions of the .NET Framework are expected to run without issues on 4.6.2 or later. Daher sollten diese Anwendungen ohne Änderungen unter Windows 10, Version 1607 oder höher mit der Version des .NET-Frameworks, die im Betriebssystem enthalten ist, installiert und ausgeführt werden.Therefore, these applications should install and run without changes on Windows 10, version 1607 or later with the version of the .NET Framework that is included with the OS.

    • 2.0 und 3.5: In unseren Tests funktionieren verpackte Desktopanwendungen, die auf diese Versionen des .NET-Frameworks ausgerichtet sind, im Allgemeinen, können aber in einigen Szenarien Leistungsprobleme aufweisen.2.0 and 3.5: In our testing, packaged desktop applications that target these versions of the .NET Framework generally work but may exhibit performance issues in some scenarios. Damit diese verpackten Anwendungen installiert und ausgeführt werden können, muss auf dem Zielcomputer das Feature .NET Framework 3.5 installiert werden (dieses Feature umfasst auch .NET Framework 2.0 und 3.0).In order for these packaged applications to install and run, the .NET Framework 3.5 feature must be installed on the target machine (this feature also includes .NET Framework 2.0 and 3.0). Sie sollten diese Anwendungen auch nach dem Verpacken gründlich testen.You should also test these applications thoroughly after you package them.

  • Für Ihre Anwendung ist ein Treiber erforderlich .Your application requires a driver . Msix unterstützt keine Treiber.MSIX does not support drivers.

  • Ihre Anwendung schreibt in den AppData-Ordner oder die Registrierung, um Daten für eine andere App freizugeben .Your application writes to the AppData folder or to the registry with the intention of sharing data with another app . Nach der Konvertierung wird AppData an den lokalen App-Datenspeicher weitergeleitet, der ein privater Speicher für jede App ist.After conversion, AppData is redirected to the local app data store, which is a private store for each app.

    Alle Einträge, die Ihre Anwendung in der Registrierungsstruktur HKEY_LOCAL_MACHINE schreibt werden in eine isolierte Binärdatei umgeleitet, und alle Einträge, die Ihre Anwendung in der Registrierungsstruktur HKEY_CURRENT_USER schreibt werden in einem privaten Speicherort pro Benutzer, pro App platziert.All entries that your application writes to the HKEY_LOCAL_MACHINE registry hive are redirected to an isolated binary file and any entries that your application writes to the HKEY_CURRENT_USER registry hive are placed into a private per-user, per-app location. Weitere Informationen zur Datei- und Registrierungsumleitung finden Sie unter Hintergrundinformationen zur Desktop-Brücke.For more details about file and registry redirection, see Behind the scenes of the Desktop Bridge.

  • Ihre Anwendung schreibt in das Installationsverzeichnis für die App .Your application writes to the install directory for your app . Ihre Anwendung schreibt z. B. in eine Protokolldatei, die sich in demselben Verzeichnis wie die EXE-Datei befindet.For example, your application writes to a log file that you put in the same directory as your exe. Dies wird nicht unterstützt, weil der Ordner geschützt ist.This isn't supported because the folder is protected. Es wird empfohlen, an einen anderen Speicherort wie den lokalen app-Datenspeicher zu schreiben.We recommend writing to another location like the local app data store. Wir haben eine Funktion hinzugefügt, die dies in 1809 und höher ermöglicht.We have added a capability that allows this in 1809 and later.

  • Ihre Anwendung verwendet das aktuelle Arbeitsverzeichnis .Your application uses the current working directory . Zur Laufzeit nutzt die verpackte Desktopanwendung nicht das gleiche Arbeitsverzeichnis, das Sie zuvor in Ihrer Desktop-LNK-Verknüpfung angegeben haben.At runtime, your packaged desktop application won't get the same working directory that you previously specified in your desktop .LNK shortcut. Sie müssen das aktuelle Arbeitsverzeichnis zur Laufzeit ändern, wenn das richtige Verzeichnis notwendig ist, damit Ihre Anwendung ordnungsgemäß funktioniert.You need to change your CWD at runtime if having the correct directory is important for your application to function correctly.

  • Ihre Anwendung installiert und lädt Assemblys aus dem Windows-Seite-an-Seite-Ordner .Your application installs and loads assemblies from the Windows side-by-side folder . Ihre Anwendung verwendet z. b. C-Laufzeitbibliotheken VC8 oder VC9 und verknüpft Sie dynamisch von Windows nebeneinander. Dies bedeutet, dass Ihr Code die allgemeinen dll-Dateien aus einem freigegebenen Ordner verwendet, z. b. c:\windows\winsxs.For example, your application uses C runtime libraries VC8 or VC9 and is dynamically linking them from Windows side-by-side folder, meaning your code is using the common DLL files from a shared folder, such as C:\Windows\WinSxS. Dies wird nicht unterstützt.This is not supported. Sie müssen diese statisch verknüpfen, indem sie eine Verknüpfung mit den verteilbaren Bibliotheksdateien direkt in den Code erstellen.You will need to statically link them by linking to the redistributable library files directly into your code.

Weitere ÜberlegungenOther considerations

  • Erneutes Verpacken Ihres Installers in der richtigen Architektur .Repackaging your installer on the proper architecture . , Wenn das Installationsprogramm auf einem x86-Computer installiert werden soll.If your installer is intended to be installed on a x86 machine. Stellen Sie sicher, dass Sie das Installationsprogramm auf einem x86-Computer neu verpacken.Be sure to repackage your installer on a x86 machine. Dies gilt für das Installationsprogramm für x64-Computer.This is applicable for installer intended for x64 machines.

    Hinweis

    Wenn Ihre Anwendung in das Installationsverzeichnis schreiben oder das aktuelle Arbeitsverzeichnis verwenden muss, können Sie auch in Betracht ziehen, eine Laufzeitkorrektur mit dem Package Support Framework zu Ihrem Paket hinzuzufügen.If your app needs to write to the installation directory or use the current working directory, you can also consider adding a runtime fixup using the Package Support Framework to your package. Weitere Informationen finden Sie in diesem Artikel.For more details, see this article.