2012-06-29 5 views
52

Ich habe einige Klassenbibliotheken mit einer nicht-trivialen Menge an vorhandenem Code. Die Klassenbibliotheken zielen derzeit auf .NET 4.0 ab. Gibt es Hinweise, wie diese Bibliotheken in tragbare Bibliotheken umgewandelt werden können? Vom Blick auf die CSPROJ, scheint es nicht, dass es viele Unterschiede gibt:Gibt es Anleitungen zum Konvertieren vorhandener .NET-Klassenbibliotheken in tragbare Bibliotheken?

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

und

<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

Ist es eine gute oder schlechte Idee, eine vorhandene Klassenbibliothek zu versuchen Umwandlung eine tragbare Bibliothek sein?

+0

Igor Milovanović hat ein schönes Tutorial mit Visuals [hier] (http://geekswithblogs.net/imilovanovic/archive/2012/08/31/vs2012---how-to-manual-convert-.net-class- Bibliothek-zu.aspx). –

Antwort

66

Wir haben auch vorhandene Bibliotheken in tragbare Bibliotheken konvertiert und es funktioniert gut. Sie müssen die Projektdatei ändern. Ersetzen Sie die folgende Zeile:

<Import Project="..." /> 

mit

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

Add folgende Zeile in einem Property Tag

<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

Und entfernen Sie folgende Zeilen aus der Datei AssemblyInfo.cs

[assembly: ComVisible(false)] 
[assembly: Guid("...")] 

Af Danach sollte Visual Studio die Registerkarte "Bibliothek" auf der Projekteigenschaftsseite anzeigen und Sie können die Zielframeworks für die portable Bibliothek ändern.

+3

Ich habe gerade ein paar Projekte bearbeitet (möglicherweise ältere Versionen einer Projektdatei), und ich musste auch die Tags 'und' 'zu einer PropertyGroup hinzufügen. Die Verwendung von TFVersion -> 4.0 und TFProfile -> 104 funktionierte für mich. – markerikson

+0

Korrektur: 'TargetFrameworkVersion' sollte' v4.0' sein (notieren Sie das 'v') –

+1

WinPhone 8.1 ist: Profile32 v4.6 Jimmyt1988

0

Sie können die Zeile <Import Project="..." /> löschen. Wenn Sie das Projekt erneut laden, werden Sie von Visual Studio gefragt, auf welche Frameworks verwiesen werden soll. Sie können dies später in den Projekteigenschaften ändern.

+0

Ich dachte, das wäre ordentlich, aber leider hat es nicht für mich funktioniert. –

+1

Hmm, sieht einfach nicht so aus, als ob das funktioniert. –

4

Ich habe eine Visual Studio Extension erstellt, um dies zu automatisieren. Suchen Sie nur in Visual Studio> 2012 in Erweiterung für "convert to pcl"

Der Quellcode ist auch auf Github verfügbar.

+14

Wurde es aktualisiert, um im Jahr 2015 zu arbeiten? – Sinaesthetic

Verwandte Themen