2012-06-29 20 views
52

Tengo algunas bibliotecas de clase con una cantidad no trivial de código existente. Las bibliotecas de clase actualmente apuntan a .NET 4.0. ¿Hay alguna guía sobre cómo convertir estas bibliotecas en bibliotecas portátiles? De su análisis de la .csproj, no parece que hay muchas diferencias:¿Hay alguna guía para convertir librerías de clases .NET existentes a bibliotecas portátiles?

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

y

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

¿Es una buena o mala idea para tratar de convertir una biblioteca de clases existente para ser una biblioteca portátil?

+0

Igor Milovanović tiene un buen tutorial con imágenes [aquí] (http://geekswithblogs.net/imilovanovic/archive/2012/08/31/vs2012---how-to-manually-convert-.net-class- library-to.aspx). –

Respuesta

66

También convertimos bibliotecas existentes a bibliotecas portátiles y funciona bien. Tienes que modificar el archivo del proyecto. Vuelva a colocar la siguiente línea:

<Import Project="..." /> 

con

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

Agregar siguiente línea dentro de una etiqueta PropertyGroup

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

Y eliminar las siguientes líneas de AssemblyInfo.cs presentar

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

Af Después de eso, Visual Studio debería mostrarle la página de pestañas "Biblioteca" en la página de propiedades del proyecto y puede cambiar los marcos de destino para la biblioteca portátil.

+3

Acabo de editar un par de proyectos (posiblemente versiones de archivo de proyecto más antiguas), y también tuve que agregar las etiquetas '' y '' a un PropertyGroup también. Usar valores de TFVersion -> 4.0 y TFProfile -> 104 funcionó para mí. – markerikson

+0

Corrección: '' TargetFrameworkVersion' debe ser v4.0' (nótese el 'V') –

+1

WinPhone 8.1 es: Profile32 v4.6 Jimmyt1988

0

Puede eliminar la línea <Import Project="..." />. Luego, cuando recargue el proyecto, Visual Studio le preguntará a qué marcos se debe dirigir. Luego puede cambiar esto más adelante en las propiedades del proyecto.

+0

Pensé que esto sería bueno, pero desafortunadamente no funcionó para mí. –

+1

Hmm, simplemente no parece que esto funcione más. –

4

Creé una extensión de Visual Studio para automatizar esto. Solo busca en Visual Studio> 2012 en la extensión para "convert to pcl"

El código fuente también está disponible en Github.

+14

¿Ha sido actualizado para funcionar en 2015? – Sinaesthetic

Cuestiones relacionadas