Plattformübergreifende Entwicklung mit der portablen KlassenbibliothekCross-platform development with the Portable Class Library

Mit dem Projekttyp der portablen Klassenbibliothek in Visual Studio können Sie plattformübergreifende apps und Bibliotheken für Microsoft-Plattformen schnell und einfach erstellen.The Portable Class Library project type in Visual Studio helps you build cross-platform apps and libraries for Microsoft platforms quickly and easily.

Wichtig

Da Projekte für Portable Klassenbibliotheken nur eine ganz bestimmte Teilmenge von .NET-Implementierungen Ziel, wir Raten dringend ab, deren Verwendung in der Entwicklung neuer Anwendungen.Because Portable Class Library projects target only a very specific subset of .NET implementations, we strongly discourage their use in new application development. Der empfohlene Ersatz ist eine .NET Standard-Bibliothek, die Implementierungen für alle .NET ausgerichtet ist, die eine bestimmte Version von .NET Standard unterstützen.The recommended replacement is a .NET Standard library, which targets all .NET implementations that support a specific version of the .NET Standard. Weitere Informationen finden Sie unter .NET Standard.For more information, see .NET Standard.

Portable Klassenbibliotheken können den Zeit- und Kostenaufwand für die Entwicklung und das Testen von Code verringern.Portable class libraries can help you reduce the time and costs of developing and testing code. Verwenden Sie diesen Projekttyp zum Schreiben und Erstellen von portablen .NET Framework Assemblys, und verweisen Sie dann auf diese Assemblys von apps, die auf mehrere Plattformen abzielen, z. b. die .NET FrameworkUse this project type to write and build portable .NET Framework assemblies, and then reference those assemblies from apps that target multiple platforms such as the .NET Framework, iOS, or Mac.

Auch nachdem Sie ein Projekt für eine portable Klassenbibliothek in Visual Studio erstellt haben und mit dem Entwickeln beginnen, können Sie die Zielplattformen noch ändern.Even after you create a Portable Class Library project in Visual Studio and start developing it, you can change the target platforms. Visual Studio kompiliert Ihre Bibliothek mit den neuen Assemblys, die Ihnen helfen, die Änderungen zu identifizieren, die Sie im Code vornehmen müssen.Visual Studio compiles your library with the new assemblies, which helps you identify the changes you need to make in your code.

Erstellen eines Projekts für eine portable KlassenbibliothekCreate a Portable Class Library project

Verwenden Sie die in Visual Studio bereitgestellte Vorlage, um eine portable Klassenbibliothek zu erstellen.To create a Portable Class Library, use the template provided in Visual Studio. Erstellen Sie ein neues Projekt (Datei > Neues Projekt), und wählen Sie im Dialogfeld Neues Projekt Ihre Programmiersprache (Visual C# oder Visual Basic) aus.Create a new project (File > New Project), and in the New Project dialog box, select your programming language (Visual C# or Visual Basic). Wählen Sie dann die Vorlage Klassenbibliothek (Legacy-portabel) aus.Then, select the Class Library (Legacy Portable) template. Geben Sie einen Namen für das Projekt ein, und klicken Sie auf OK.Enter a name for your project and choose OK.

Das Dialogfeld portable Klassenbibliothek hinzufügen wird angezeigt.The Add Portable Class Library dialog box appears. Wählen Sie zwei oder mehr Ziele aus, und KlickenSie dann auf OK.Choose two or more targets, and then choose OK.

Hinzufügen von Zielen der portablen Klassenbibliothek in Visual Studio

Ziele ändernChange targets

Sie können die Zielplattformen eines Projekts für eine portable Klassenbibliothek ändern, wenn Sie es erstellen oder nachdem Sie die Entwicklung gestartet haben.You can change the target platforms of a portable class library project when you create it or after you’ve started development. Wenn Sie die Ziele nach dem Erstellen des Projekts ändern möchten, öffnen Sie in Projektmappen-Explorerdas Kontextmenü für das Projekt für die portable Klassenbibliothek (nicht die Projekt Mappe), und wählen Sie dann Eigenschaftenaus.If you want to change the targets after you’ve created your project, in Solution Explorer, open the shortcut menu for your Portable Class Library project (not the solution), and then choose Properties. Auf der Seite Projekteigenschaften werden auf der Registerkarte Bibliothek die Plattformen angezeigt, auf die das Projekt zurzeit abzielt.On the project properties page, the Library tab shows the platforms that your project currently targets.

Projekteigenschaften für die portable Klassenbibliothek in Visual Studio

Um Ziele hinzuzufügen oder zu entfernen, wählen Sie die Schaltfläche ändern aus, und deaktivieren Sie dann die entsprechenden Kontrollkästchen.To add or remove targets, choose the Change button, and then select and clear the appropriate check boxes.

Wenn Sie die Zielplattformen ändern, passen sich auch die APIs, die Ihnen zum Entwickeln des Projekts zur Verfügung stehen, Ihrer Auswahl an.When you change the targets, the APIs that are available to you for developing your project will change to match your selection. Visual Studio meldet die Fehler und Warnungen, die durch den Wechsel der Zielplattformen entstehen können.Visual Studio reports the errors and warnings that may occur as a result of the targets changing.

Wenn Sie die Portabilität Ihrer Assemblys auswerten möchten, bevor Sie Änderungen in Visual Studio vornehmen, können Sie die .net-Portabilitäts Analyseverwenden.If you want to evaluate the portability of your assemblies before you make changes in Visual Studio, you can use the .NET Portability Analyzer.

Unterstützte Typen und MembersSupported types and members

Die Typen und Member, die in Projekten für portable Klassenbibliotheken verfügbar sind, werden von mehreren Kompatibilitätsfaktoren beschränkt:The types and members that are available in Portable Class Library projects are constrained by several compatibility factors:

  • Sie müssen von allen Zielen, die Sie ausgewählt haben, gemeinsam nutzbar sein.They must be shared across the targets you selected.

  • Sie müssen sich auf diesen Zielen in ähnlicher Weise verhalten.The must behave similarly across those targets.

  • Sie dürfen keine Kandidaten für Veraltung sein.They must not be candidates for deprecation.

  • Sie müssen jedoch in einer übertragbaren Umgebung einen Sinn ergeben, insbesondere wenn sie nicht übertragbare Member unterstützen.They must make sense in a portable environment, especially when supporting members are not portable.

Wird ein Member in der portablen Klassenbibliothek und für Ihre Ziele unterstützt, erscheint es in Ihrem Projekt in IntelliSense.If a member is supported in the Portable Class Library and for your selected targets, it will appear in your project in IntelliSense. Beachten Sie aber, dass eine API zwar in der portablen Klassenbibliothek unterstützt werden kann, ob Sie die API jedoch verwenden können, hängt von den gewählten Zielen ab.However, remember that an API may be supported in the Portable Class Library, but whether you can use the API depends on the targets you select.

API-Unterschiede in der portablen KlassenbibliothekAPI differences in the Portable Class Library

Um die Kompatibilität von Assemblys für portable Klassenbibliotheken mit allen unterstützten Plattformen sicherzustellen, wurden einige Member in der portablen Klassenbibliothek geringfügig geändert.To make Portable Class Library assemblies compatible across all supported platforms, some members have been slightly changed in the Portable Class Library.

Verwenden der portablen KlassenbibliothekUse the Portable Class Library

Nachdem Sie das Projekt für die portable Klassenbibliothek erstellt haben, verweisen Sie einfach aus anderen Projekten auf das neue Projekt.After you build your Portable Class Library project, you just reference it from other projects. Sie können entweder auf das Projekt oder auf bestimmte Assemblys verweisen, die die Klassen enthalten, auf die Sie zugreifen möchten.You can reference either the project or specific assemblies that contain the classes you want to access.

Um eine App auszuführen, die auf die Assembly einer portablen Klassenbibliothek verweist, müssen auf dem Computer die erforderlichen Versionen (oder höhere Versionen) der Zielplattformen installiert sein.To run an app that references a Portable Class Library assembly, the required version (or later) of the targeted platforms must be installed on your computer. Visual Studio enthält alle erforderlichen Frameworks, sodass Sie die App ohne weitere Änderung auf dem Computer ausführen können, auf dem Sie die Anwendung entwickelt haben.Visual Studio contains all the required frameworks, so you can run the app without further modification on the computer that you used to develop the app.

Bereitstellen einer universellen Windows-AppDeploy a Universal Windows app

Wenn Sie eine universelle Windows-app erstellen, die auf eine Assembly einer portablen Klassenbibliothek verweist, ist alles, was Sie zum Bereitstellen der APP benötigen, im App-Paket enthalten, und es sind keine weiteren Schritte erforderlich.When you create a Universal Windows app that references a Portable Class Library assembly, everything you need to deploy the app is included in the app package, and no further steps are required.

Bereitstellen einer .NET Framework-AppDeploy a .NET Framework app

Wenn Sie eine .NET Framework-App bereitstellen, die auf eine Assembly einer portablen Klassenbibliothek verweist, müssen Sie eine Abhängigkeit von der richtigen Version von .NET Framework angeben.When you deploy a .NET Framework app that references a Portable Class Library assembly, you must specify a dependency on the correct version of the .NET Framework. Durch die Angabe dieser Abhängigkeit stellen Sie sicher, dass die erforderliche Version mit der App installiert wird.By specifying this dependency, you ensure that the required version is installed with your app.

  • So erstellen Sie eine Abhängigkeit mit der ClickOnce-Bereitstellung: Wählen Sie in Projektmappen-Explorerden Projekt Knoten für das Projekt aus, das Sie veröffentlichen möchten.To create a dependency with ClickOnce deployment: In Solution Explorer, choose the project node for the project you want to publish. (Dies ist das Projekt, das auf das Projekt der portablen Klassenbibliothek verweist.) Wählen Sie in der Menüleiste Projekt > Eigenschaftenaus, und wählen Sie dann die Registerkarte veröffentlichen aus. Wählen Sie auf der Seite veröffentlichen die Option Voraussetzungenaus.(This is the project that references the Portable Class Library project.) On the menu bar, choose Project > Properties, and then choose the Publish tab. On the Publish page, choose Prerequisites. Wählen Sie die erforderliche .NET Framework-Version als erforderliche Komponente aus.Select the required .NET Framework version as a prerequisite.

  • So erstellen Sie eine Abhängigkeit mit einem Setup-Projekt: Wählen Sie in Projektmappen-Explorerdas Setup-Projekt aus.To create a dependency with a setup project: In Solution Explorer, choose the setup project. Wählen Sie in der Menüleiste Projekt > Eigenschaften > Voraussetzungenaus.On the menu bar, choose Project > Properties > Prerequisites. Wählen Sie die erforderliche .NET Framework-Version als erforderliche Komponente aus.Select the required .NET Framework version as a prerequisite.

Weitere Informationen zum Bereitstellen von .NET Framework-apps finden Sie im Bereitstellungs Handbuch für Entwickler.For more information about deploying .NET Framework apps, see Deployment Guide for Developers.

Weitere InformationenSee also