Pregunta

Suponga que una solución solo contiene clases y que todas esas clases están escritas según las especificaciones de .NET 2.0. Si esa solución se abriera, convirtiera y guardara en Visual Studio 2008, ¿sería posible volver a abrir la solución más tarde en Visual Studio 2005 con algunas modificaciones mínimas en el archivo .SLN?

¿Cómo se podría hacer eso?

¿Existe una herramienta que '' convertirá hacia abajo " ¿Archivos .SLN de 2008 a 2005 si todas las clases contenidas en la solución ya están escritas con las especificaciones de .NET 2.0?

¿Fue útil?

Solución

Normalmente, lo único que debe hacer con los archivos .SLN es cambiar el número de versión en la parte superior del archivo.

Sus archivos de proyecto CS también estarán casi bien, y si no lo están, es posible modificarlos para que estén bien tanto en 2005 como en 2008.

Ejecutamos durante un tiempo con dos archivos de solución (05 y 08) que comparten el mismo conjunto de archivos de proyecto CS.

Sin embargo, tenga en cuenta que no puede compartir archivos de proyecto de VC entre las dos versiones como esta.

El 'ajuste' para los archivos del proyecto es el siguiente:

Los proyectos CS creados en VS2008 contendrán la línea:

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

VS2005 se ahogará con esto, y debe cambiarlo a lo siguiente:

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

Este último funcionará con 2005 y 2008.

Otros consejos

Si no estás usando ninguna "fantasía" En 2008, según mi experiencia, lo único que cambia es el número de versión en un par de lugares. Eso se puede editar manualmente (está en la parte superior del archivo IIRC). Al menos vale la pena intentarlo. Si utiliza características específicas de VS2008 (diseñadores, etc.), puede que no funcione, pero para bibliotecas de clases simples he tenido éxito al hacer esto.

Quizás le interese un publicación de blog sobre VS2005 y VS2008 coexistiendo que escribí hace un tiempo.

Aquí hay un convertidor http://www.emmet-gray.com/ Articles / ProjectConverter.htm (también funciona con VS 2010).

También hay http://www.dsmyth.net/wiki/Downloads_VS2008ToVS2005Patcher.ashx
(¿enlace roto actualmente?).

También encontré esto http://www.codeplex.com/Vs2008BackMigration pero no lo hice ' t probarlo.

Sí, es posible, si "rebaja" los archivos de solución.

No, no existe tal herramienta que conozca, y he buscado.

Tienes tres opciones:

  1. No abrir el archivo de solución en 2008 y, por lo tanto, nunca actualizarlo
  2. No mezclar versiones de cliente contra los mismos archivos (es decir, apegarse a 2005 o actualizar a todos)
  3. Mantenga archivos de solución separados para 2005 y 2008, asegúrese de que todos los mismos proyectos estén presentes en ambos

Gracias a @Will Dean por recordarme que los archivos de proyecto se pueden compartir. Tenga en cuenta que son tocados por el editor de 2008, pero pueden abrirse en 2005 después.

Podrías probar esto. YMMV

http://www.emmet-gray.com/Articles/ProjectConverter.htm

Recuerdo que fue publicado en el blog de Jon Skeets hace unos meses y parecía recibir el visto bueno de la gente

No hay forma directa, y es una tarea difícil si lo intentas. La forma más sencilla sería crear un nuevo proyecto 2005 y agregar sus clases.

Para empezar: estas son las diferencias que verías:

archivos .csproj: (se basan en el esquema MSBuild)

(editar)

  • ToolsVersion
  • ProductVersion
  • ProjectVersion

(eliminar)

  • OldToolsVersion
  • TargetFramework

.sln archivos: (sin esquema)

  • Formatear la versión 10.0

etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top