Plattformübergreifende Entwicklung mit der portablen Klassenbibliothek

.NET Framework (current version)
 

Der .NET Framework-Projekttyp "Portable Klassenbibliothek" in Visual Studio hilft Ihnen, plattformübergreifende Apps und Bibliotheken für Microsoft-Plattformen schnell und einfach zu erstellen.

Portable Klassenbibliotheken können den Zeit- und Kostenaufwand für die Entwicklung und das Testen von Code verringern. Verwenden Sie diesen Projekttyp, um portable .NET Framework-Assemblys zu schreiben und zu erstellen und auf diese dann aus Apps für mehrere Plattformen wie Windows und Windows Phone zu verweisen.

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. Visual Studio kompiliert Ihre Bibliothek mit den neuen Assemblys, sodass Sie die Änderungen, die Sie an am Code vornehmen müssen, leichter bestimmen können.

Dieser Artikel erläutert die Entwicklung von Apps in Visual Studio, aber Microsoft stellt auch Verweisassemblys für portable Klassenbibliotheken zur Verfügung, die Sie verwenden können, um Apps und Bibliotheken mit anderen Tools wie Xamarin zu entwickeln. Diese Apps und Bibliotheken können Sie auf jeder .NET Framework-basierten Laufzeit auf Nicht-Microsoft-Plattformen verwenden. Weitere Informationen über die Verweisassemblys finden Sie im Blogeintrag Portable Klassenbibliothek (PCL) jetzt auf allen Plattformen verfügbar. Informationen zum Herunterladen von Assemblys finden Sie unter Microsoft .NET Library Verweisassemblys für Portable im Microsoft Download Center. Weitere Informationen zur Verwendung von Assemblys mit Xamarin finden Sie im Blogeintrag PCL und .NET NuGet-Bibliotheken jetzt für Xamarin aktiviert.

Visual Studio bietet Ihnen Vorlagen für das Entwickeln mit der portablen Klassenbibliothek. Je nachdem, welche Visual Studio-Version Sie verwenden, können die verfügbaren Vorlagen und Menüs von den in diesem Artikel beschriebenen abweichen.

System_CAPS_ICON_warning.jpg Warnung

Visual Studio 2013 Update 2 enthält Updates für die Vorlagen der portablen Klassenbibliothek. Wenn Sie eine frühere Version von Visual Studio und Visual Studio 2013 auf demselben Computer installiert haben, und Sie dann Update 2 installieren, die Änderungen an der Zielframework Optionen gelten für beide Versionen von Visual Studio.

In diesem Thema:

Visual Studio-Unterstützung
Erstellen eines Portable Class Library-Projekts
Zieloptionen
Ziele ändern
Unterstützte Funktionen
Unterstützte Typen und Member
API-Unterschiede in der portablen Klassenbibliothek
Verwenden der portablen Klassenbibliothek

Die Visual Studio-Unterstützung für die portable Klassenbibliothek richtet sich nach Ihrer Visual Studio-Version. In einigen Fällen ist alles vorhanden, was Sie benötigen, in anderen Fällen müssen Sie, entsprechend der folgenden Tabelle, zusätzliche Elemente installieren.

Visual Studio-SKUUnterstützung bei der Erstellung einer portablen Klassenbibliothek
Visual Studio 2010 Professional, Premium oder UltimateJa, bei der Installation der Portable Library Tools.
Visual Studio Express 2010-VersionenNein.
Visual Studio 2012 Professional, Premium oder UltimateJa. Für Phone-Unterstützung installieren Sie die Windows Phone SDK 8.0.
Visual Studio Express 2012-VersionenNein.
Visual Studio 2013 Professional, Premium oder UltimateJa. Für Windows Phone 8.1-Unterstützung installieren Visual Studio 2013 Update 2.
Visual Studio Express 2013 für WindowsJa, bei der Installation der neueste Version von Visual Studio Express, die Update 2, oder fügen Visual Studio 2013 Update 2.

Um eine portable Klassenbibliothek zu erstellen, sollten Sie eine der Vorlagen aus Visual Studio verwenden. Erstellen eines neuen Projekts, und klicken Sie in der neues Projekt Dialogfeld Vorlagen, wählen Sie die Zielsprache (C#- oder Visual Basic), und wählen Sie dann eine der Plattformen verwendet werden soll. Weitere Plattformen können Sie im nächsten Schritt auswählen.

In Visual Studio 2013 Update 2 können Sie wählen die -Klassenbibliothek (portabel) Vorlage für die ausgewählte Sprache und Plattform um eine Portable Klassenbibliothek zu erstellen. Sie sehen diese Vorlage für die folgenden Plattformen:

  • Store-Apps

  • Windows Desktop

  • Silverlight

Wenn Sie eine Bibliothek mit Ziel Windows Phone 8.1 und Windows 8.1 in c# erstellen möchten, können Sie auswählen Store-apps, und wählen Sie dann -Klassenbibliothek (portabel für Universal Apps).

Portable Klassenbibliothek für Store-Apps

Diese Vorlage wählt automatisch Windows 8.1 und Windows Phone 8.1 als Ziele. Wenn Sie eine Bibliothek erstellen, die nur Windows Phone 8.1 oder Windows 8.1 als Ziel hat, können Sie die Zielplattformen später ändern und weitere Plattformen hinzufügen.

Wenn Sie Visual Studio 2012 oder Visual Studio 2013 ohne Update 2 verwenden, erstellen Sie ein neues Projekt und wählen Sie die Portable Klassenbibliothek unter Visual c# oder Visual Basic die Vorlage.

Wählen Sie Portable Library-Projekt

Die Portable Klassenbibliothek hinzufügen das Dialogfeld wird angezeigt, und Sie können zusätzliche Plattformen auswählen. Das Dialogfeld zeigt abhängig von den gewählten Zielen Kompatibilitätswarnungen an.

Projektzielframeworkdialog für VS2013 ändern
Dialogfeld "Portable Klassenbibliothek hinzufügen" für Visual Studio 2013 Update 2

Unabhängig davon, ob Sie Visual Studio 2012 oder Visual Studio 2013 verwenden, können Sie die Plattformen bereits auswählen, wenn Sie das Projekt für die portable Klassenbibliothek erstellen, oder nach dem Erstellen des Projekts die Projekteigenschaften verwenden, um die Zielplattformen zu ändern.

Wenn Sie ein Projekt für eine portable Klassenbibliothek erstellen, können Sie das Betriebssystem und die .NET Framework-Version auswählen, die Sie als Ziel wünschen. Wenn Sie Visual Studio 2013 verwenden und Update 2 installiert haben oder höher, können Sie wählen die -Klassenbibliothek (portabel für Universal Apps) Vorlage, um eine Portable Klassenbibliothek zu erstellen, die auf Windows 8.1 und Windows Phone 8.1 abzielt. Die folgende Tabelle zeigt die für Ihre jeweilige Visual Studio-Version verfügbaren Ziele.

ZieloptionVisual Studio 2012Visual Studio 2013Visual Studio 2013 Update 2 oder höher
.NET Framework– .NET Framework 4 und höher

– .NET Framework 4.0.3 und höher

– .NET Framework 4.5
– .NET Framework 4 und höher

– .NET Framework 4.0.3 und höher

– .NET Framework 4.5 und höher

– .NET Framework 4.5.1
– .NET Framework 4

– .NET Framework 4.0.3

– .NET Framework 4.5

– .NET Framework 4.5.1
Windows Phone– Windows Phone 7 und höher

– Windows Phone 7.5 und höher

-Windows Phone 8
-Windows Phone 8– Windows Phone Silverlight 8

– Windows Phone Silverlight 8.1

Für Windows Runtime- und XAML-Unterstützung, wählen Sie:

– Windows Phone 8.1
Windows Store– .NET für Windows Store-Apps-Windows Store-Apps (Windows 8) und höher

-Windows Store-Apps (Windows 8.1)
– Windows 8

-Windows 8.1
-Silverlight-Silverlight 4 und höher

-Silverlight 5
-Silverlight 5-Silverlight 5
Xbox-Xbox 360Nicht zutreffendNicht zutreffend

Wenn Sie eine Vorlage für eine portable Klassenbibliothek wählen, werden Standardplattformen für Sie ausgewählt. Diese Plattformen richten sich nach der Visual Studio-Version, die Sie installiert haben, und nach den vorher ausgewählten Zielen. Sie können die Plattformen ändern, wenn Sie die portable Klassenbibliothek erstellen, oder nachdem Sie mit dem Entwickeln der portablen Klassenbibliothek begonnen haben.

Wenn Sie die Zielplattformen ändern, nachdem Sie in Ihr Projekt erstellt haben möchten Projektmappen-Explorer, öffnen Sie das Kontextmenü für das Portable Class Library-Projekt (nicht die Projektmappe), und wählen Sie dann Eigenschaften. Auf der Eigenschaftenseite des Projekts die Bibliothek Registerkarte angezeigt, dass das Projekt zurzeit verwendet.

Projekteigenschaften
Eigenschaftenseite portable Klassenbibliothek für Visual Studio 2013 Update 2

Wählen Sie zum Hinzufügen oder Entfernen von Zielen, die ändern Schaltfläche und dann die entsprechenden Kontrollkästchen deaktivieren.

Wenn Sie die Zielplattformen ändern, passen sich auch die APIs, die Ihnen zum Entwickeln des Projekts zur Verfügung stehen, Ihrer Auswahl an. Visual Studio meldet die Fehler und Warnungen, die durch den Wechsel der Zielplattformen entstehen können.

Wenn Sie die Portabilität auswerten möchten Assemblys vor dem Ändern in Visual Studio, können Sie die .NET Portability Analyzer.

Die Menüoptionen variieren in Abhängigkeit von Ihrer Visual Studio-Version.

Ziel ändern
Dialogfeld "Zielplattformen ändern" in Visual Studio 2012

Die folgende Tabelle zeigt, welche Funktionen auf den verfügbaren Plattformen und in ihren Versionen unterstützt werden. In einigen Fällen hat Microsoft zur Veröffentlichung eines NuGet-Pakets Unterstützung hinzugefügt und dies vermerkt. Weitere Informationen über NuGet-Pakete für .NET Framework finden Sie unter der .NET Framework und Out-of-Band-Versionen.

Funktion.NET Framework.NET Framework.NET FrameworkWindows StoreWindows StoreWindows Phone StoreWindows Phone SilverlightWindows Phone SilverlightWindows Phone SilverlightSilverlightSilverlightXbox 360
44.0.34.588.18.17.588.145
Kernbibliotheken
Asynchrone Unterstützung
Komprimierung
Datenanmerkungen
Dynamisches Schlüsselwort
HTTPClient
IQueryable
Language-Integrated Query (LINQ)
Managed Extensibility Network (MEF)
Netzwerkklassenbibliothek (NCL)
Serialisierung (Datenvertrag, XML und JSON)
System.Numerics
Ansichtsmodelle (MVVM)
Windows Communication Foundation (WCF)
Windows Runtime-APIs
Windows.UI.XAML
XLINQ

➊ Erfordert Microsoft Async Paket
➋ Erfordert Microsoft Compression Paket
➌ Erfordert Microsoft HTTP Client Libraries Paket

System_CAPS_ICON_warning.jpg Warnung

Sie können Fehler auftreten, wenn Sie verweisen die Microsoft Compression und Microsoft HTTP Client Libraries Pakete von einer portablen Bibliothek, die von einer Windows Phone Silverlight 8.1-app verwendet. Weitere Informationen finden Sie unter Plattformkompatibilität und Änderungen für Windows Phone Silverlight 8.1-apps.

Die Typen und Member, die in Projekten für portable Klassenbibliotheken verfügbar sind, werden von mehreren Kompatibilitätsfaktoren beschränkt:

  • Sie müssen von allen Zielen, die Sie ausgewählt haben, gemeinsam nutzbar sein.

  • Sie müssen sich auf diesen Zielen in ähnlicher Weise verhalten.

  • Sie dürfen keine Kandidaten für Veraltung sein.

  • Sie müssen jedoch in einer übertragbaren Umgebung einen Sinn ergeben, insbesondere wenn sie nicht übertragbare Member unterstützen.

Beispielsweise enthält die portable Klassenbibliothek nur dann UI-bezogene Typen, wenn Sie als Ziel Windows 8.1 und Windows Phone 8.1 wählen. Sie treffen möglicherweise auch Einschränkungen an, wenn Sie für Plattformen entwickeln, die vor der Einführung der portablen Klassenbibliothek veröffentlicht wurden (wie Xbox, .NET Framework 4 und Windows Phone 7). Das .NET Framework veröffentlicht Pakete über NuGet, wodurch die Unterstützung für portable Klassenbibliotheken für einige dieser älteren Plattformen verbessert wird. Weitere Informationen und eine Liste von NuGet-Paketen finden Sie unter der .NET Framework und Out-of-Band-Versionen.

Wird ein Member in der portablen Klassenbibliothek und für Ihre Ziele unterstützt, erscheint es in Ihrem Projekt in IntelliSense. Darüber hinaus das Symbol Portable Klassenbibliothek unterstützt von Portable Library wird in den Membertabellen in der .NET Framework-Klassenbibliothek neben den unterstützten Membern. Zum Beispiel die folgende Membertabelle zeigt, dass die Zeichen Eigenschaft in der Zeichenfolge -Klasse in der portablen Klassenbibliothek unterstützt wird:

Symbol "unterstützter Member"
Symbol für die portable Klassenbibliothek

Sie können auch Suchen der Versionsinformationen Abschnitt eines Referenzthemas nach einem Hinweis, der angibt, dass ein Typ oder Member im Projekt Portable Klassenbibliothek unterstützt wird:

Portable Library-Versionsinformationen
Beispiel für Versionsinformationen

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.

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.

Nachdem Sie das Projekt für die portable Klassenbibliothek erstellt haben, verweisen Sie einfach aus anderen Projekten auf das neue Projekt. Sie können entweder auf das Projekt oder auf bestimmte Assemblys verweisen, die die Klassen enthalten, auf die Sie zugreifen möchten.

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. 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.

Bereitstellen einer Windows Store- oder Windows Phone-App

Wenn Sie eine Windows Store- oder Windows Phone-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.

Bereitstellen einer .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. Durch die Angabe dieser Abhängigkeit stellen Sie sicher, dass die erforderliche Version mit der App installiert wird. Wenn Sie als .NET Framework 4 Ziel oder höher, der Computer muss .NET Framework 4 mit einem aktualisieren, Update 4.0.3 für .NET Framework 4 oder .NET Framework 4.5 installiert.

  • So erstellen Sie eine Abhängigkeit mit ClickOnce-Bereitstellung: In Projektmappen-Explorer, wählen Sie den Projektknoten für das Projekt, das Sie veröffentlichen möchten. (Dies ist das Projekt, mit dem auf das Projekt der portablen Klassenbibliothek verwiesen wird.) Wählen Sie auf der Menüleiste Projekt, Eigenschaften, und wählen Sie dann die veröffentlichen Registerkarte. Auf der veröffentlichen Seite Voraussetzungen. Wählen Sie die erforderliche .NET Framework-Version (oder ein Update von .NET Framework 4) als erforderliche Komponente aus.

  • Um eine Abhängigkeit mit einem Setupprojekt zu erstellen: im Projektmappen-Explorer, wählen Sie das Setupprojekt. Wählen Sie auf der Menüleiste Projekt, Eigenschaften, Voraussetzungen. Wählen Sie die erforderliche .NET Framework-Version als erforderliche Komponente aus.

Weitere Informationen zum Bereitstellen von .NET Framework-apps, finden Sie unter Bereitstellungshandbuch für Entwickler.

Bereitstellen einer Silverlight-App

Wenn Sie eine Silverlight-App bereitstellen, die auf eine Assembly einer portablen Klassenbibliothek verweist, müssen Sie sicherstellen, dass die minimale erforderliche Laufzeitversion für die App der Zielversion entspricht. Wenn Sie für Silverlight 4 entwickeln, muss die Version 4.0.60129.0 oder höher sein. Sie legen die Version fest, indem Sie <param name="minRuntimeVersion" value="4.0.60129.0" /> wie folgt in die Webseite einschließen, die die Silverlight-App hostet:

<div id="silverlightControlHost">  
    <object data="data:application/x-silverlight-2,"   
           type="application/x-silverlight-2" width="100%" height="100%">  
    <param name="source" value="ClientBin/SilverlightApplication.xap"/>  
    <param name="onError" value="onSilverlightError" />  
    <param name="background" value="white" />  
    <param name="minRuntimeVersion" value="4.0.60129.0" />  
    <param name="autoUpgrade" value="true" />  
    <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0"   
             style="text-decoration:none">  
      <img src=http://go.microsoft.com/fwlink/?LinkId=161376  
             alt="Get Microsoft Silverlight" style="border-style:none"/>  
    </a>  
  </object>  
   <iframe id="_sl_historyFrame"   
              style="visibility:hidden;height:0px;width:0px;border:0px">  
   </iframe>  
</div>  
  

Verwenden Portable Klassenbibliothek mit MVVM
App-Ressourcen für Bibliotheken, die mehrere Zielplattformen
.NET Portability Analyzer
.NET Framework-Unterstützung für Windows Store-Apps und Windows-Runtime
Bereitstellung

Anzeigen: