Tengo una solución en Visual Studio 2012 con 170 proyectos de C #. Necesito reorientar todos los proyectos de .NET Framework 4.0 a 4.5.2.
Prefiero dejar que Visual Studio maneje esto yendo a las propiedades de cada proyecto, cambiando el marco de trabajo de destino y dejando que Visual Studio realice los cambios necesarios en los archivos .csproj.
Noté que estos cambios incluyen agregar algunas etiquetas XML nuevas al .csproj, dependiendo de algunos atributos del proyecto actual.
¿Cómo puedo reorientar por lotes todos los 170 proyectos de C # sin solo usar una herramienta de reemplazo de texto para reemplazar el número de versión de destino? Quiero que Visual Studio realice todas las modificaciones y adiciones de etiquetas necesarias y el reemplazo solo no permitirá que eso suceda.
fuente
Respuestas:
La documentación de MSDN " Guía de migración a .NET Framework 4.5 " y " Cómo configurar una aplicación para admitir .NET Framework 4 o 4.5 " solo trata sobre la modificación de proyectos. No hay detalles sobre la aplicación de cambios a toda la solución a la vez, ni he visto una función en VS que la admita.
Sin embargo, hay una extensión (bien calificada) llamada Target Framework Migrator disponible en la galería de Visual Studio, que admite la actualización a 4.5.2 (así como a versiones más nuevas **) y parece que hará exactamente lo que desea. El código fuente está disponible en GitHub , si está interesado.
Tenga en cuenta que la falta de dicha característica puede ser intencional (y no solo una omisión). Solo supongo, pero tal vez MS cree que solo se actualizarán los proyectos que necesitan los nuevos Frameworks. FWIW, si termina actualizando algunos proyectos que se comparten con otras soluciones, es posible que esas soluciones no se desarrollen hasta que también se actualicen.
Dicho esto, si está en una tienda pequeña con solo una (o algunas) soluciones y está buscando actualizar todo de una vez, entonces tal vez la herramienta anterior funcione para usted.
Si no puede hacer que funcione con una versión más reciente de .NET Framework, consulte los PR y los problemas existentes para ver si hay correcciones, pero es posible que deba aplicarlas usted mismo. Por ejemplo, alguien publicó una solución para .NET Framework v 4.7.1 . Con suerte, estos se fusionarán, pero no aguantaré la respiración.
Si alguien más ve el mismo error que Anas (en los comentarios), aquí hay un problema de GitHub de hace un par de semanas y otro problema posiblemente relacionado de 2017. Considere aprobarlos y agregar más detalles si tiene el mismo problema .
fuente
Para una solución .NET Framework, un simple " Reemplazar en archivos " me sirvió:
por ejemplo : de .NET Framework 4.5.2 a .NET Framework 4.7.2
En los archivos package.config , reemplace todos
a
En archivos * .csproj , reemplace todos
a
fuente
Dado que Target Framework Migrator está roto, hice mi propia búsqueda / reemplazo (usando git bash, funciona bien en Windows); Básicamente se cambia el v4.6.x en v4.7.2 , entonces se convierte de nuevo a los archivos usando CRLF de la infame DOS:
fuente
Update-Package -ReInstall
hice maravillas. ¡Gracias!He creado una herramienta simple para migrar las versiones del marco de destino para una solución completa, porque Target Framework Migrator Extension no es compatible con Visual Studio 2017. Descargue la herramienta de mi repositorio de GitHub https://github.com/Xpitfire/TargetFrameworkMigrator
Sé que esta no es la mejor manera de hacerlo, pero funcionó para mí y tal vez también ayude a alguien más.
fuente
Target Framework Migrator es bastante útil. De forma predeterminada, llega a la v4.7. Sin embargo, es fácil agregar soporte para v4.7.1, v4.7.2 y v4.8.
Busque el archivo Frameworks.xml en la carpeta C: \ Users {username} \ AppData \ Local \ Microsoft \ VisualStudio \ y edítelo agregando estas versiones de framework:
Después de reiniciar Visual Studio, verá nuevas versiones.
fuente
fuente