2013-11-20 4 views
21

Ich habe derzeit eine Portable Class Library, deren Code ist völlig kompatibel mit einer regulären Class Library ohne jegliche Änderung.Konvertieren Sie eine PCL in eine reguläre Klassenbibliothek

Ich frage mich, ob es eine vorhandene Software gab, um die Umwandlung automatisch durchzuführen; Ich habe mir die Visual Studio-Tools angeschaut, konnte aber keine geeigneten finden. Bevor ich mein eigenes schrieb, wollte ich nur sicher sein!

+4

Wenn der Code vollständig kompatibel ist, warum möchten Sie es konvertieren? Verwenden Sie einfach den PCL wie er ist in Ihrem eigenen Projekt. – thecoop

+0

Ich verwende eine alte Version von Xamarin, die PCL nicht unterstützt. – Max

+0

Ist "rekompilieren Sie es für ein anderes Ziel" eine Option? Oder versuchen Sie, auf der DLL-Ebene zu arbeiten? Wenn ja: Ist es signiert/stark benannt? –

Antwort

52

Die Unterschiede werden in Ihrer .proj-Datei sein.

Nachdem ich es selbst versucht habe, müssen Sie alle der folgenden tun;

  1. entfernen <TargetFrameworkProfile> Element
  2. entfernen <ProjectTypeGuids> Element
  3. ändern, wo Sie # 2 (unten) für das, was ich in # zeigen 1

1. Regelmäßige Klassenbibliothek

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 

2. Portable Klassenbibliothek

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" /> 
+0

Sie müssen auch alle Verweise auf nicht pcl dll wie System etc. entfernen. –

+4

Ich denke, dass Sie sollten * hinzufügen * Verweise auf Dinge wie System und System.Core beim Übergang von PCL zu normal. (So ​​klingt es, als würde das OP fragen) Nach den hier aufgeführten Änderungen hatte ich keine Hinweise auf irgendetwas, aber es war einfach genug, sie wieder hinzuzufügen. Vielen Dank! –

+0

Arbeitete gut. Danke vielmals. –

6

Verwendung VSCommands, hat es als Build-in-Funktionalität Projekte zu PCL zu konvertieren. Klicken Sie mit der rechten Maustaste auf Projekt und konvertieren Sie es. Es ist kostenlos und ein Teil der Visual Studio-Erweiterungen http://vscommands.squaredinfinity.com/Features-SolutionExplorer

-Update 2016.10.12: Link oben ist tot. Das Tool wurde für Visual Studio 2015 neu geschrieben und kann hier gefunden werden: https://visualstudiogallery.msdn.microsoft.com/c84be782-b1f1-4f6b-85bb-945ebc852aa1

+0

Das ist das Gegenteil von dem, was der Autor tun wollte. Sie haben bereits eine PCL und möchten sie in eine reguläre Klassenbibliothek konvertieren. Außerdem ist die Verbindung jetzt unterbrochen. – Swampie