Tengo un proyecto web de proyecto .Net Core y, por varias razones, quiero convertirlo en un proyecto de .Net Framework.
¿Hay una manera fácil de hacer esto, o tengo que empezar de nuevo e importar el código de los proyectos anteriores?
Cargué el proyecto central en VS 2017 RC Community y abrí * .csproj en el editor de texto.
Simplemente elimine la etiqueta
<RuntimeFrameworkVersion>y reemplazar
<TargetFramework>netcoreapp1.1</TargetFramework>para
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>Y después de todo, en las propiedades del proyecto, establezca cualquier otro marco y reinicie (VS recargue y repare el archivo * .csproj).
Ninguna de las respuestas aquí funcionó para mí. En .Net Core 2, el archivo project.json ya no existe. Sin embargo, resolví este problema usando los siguientes pasos.
1) Eliminé todos los paquetes nuget de mi proyecto existente.
2) Creé un proyecto de aplicación web .net core separado, dirigido a .net 4.61. Esto fue para obtener los paquetes nuget predeterminados.
3) Edité el archivo .csproj del proyecto temporal, copié todos los nodos PackageReference dentro de ItemGroup y los pegué en el archivo .csproj de mis proyectos existentes.
4) Editó el nodo TargetFramework (dentro de PropertyGroup) de "netstandard2" a "net461"
Tuve algunos cambios en el paquete para rastrear y resolver, pero por lo demás pude ejecutar.
Hay varios pasos que debe hacer para lograr esto.
<TargetFrameworks>netstandard2.0;netcoreapp2.0;net35;</TargetFrameworks> <RuntimeIdentifiers>win7-x86;win7-x64</RuntimeIdentifiers> <EnableDefaultCompileItems>false</EnableDefaultCompileItems>.dll y el paquete Nuget para esta compilación en la carpeta Debug/Release del proyecto..dll al nuget y acceda a estos proyectos desde nuget.Pruebe los pasos anteriores. Esto debería funcionar.
En mi versión de Visual Studio 2017 (15.6.2) después de 'Descargar el proyecto', hacer clic derecho y seleccionar 'Editar <your project file> , tuve que:
Agregue el nodo:
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
Eliminar los nodos:
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.16299.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Esto funcionó para mí en VS2017:
Comience con la plantilla de proyecto web de .net core.
Edite *.csproj para que se vea así:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net472</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="2.1.3" /> <PackageReference Include="Microsoft.AspNetCore.CookiePolicy" Version="2.1.2" /> <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.1.1" /> <PackageReference Include="Microsoft.AspNetCore.HttpsPolicy" Version="2.1.1" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.2" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.1.2" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.RazorPages" Version="2.1.2" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.1" /> </ItemGroup> </Project>Guardar y cerrar.
Intente ejecutar el proyecto.
PackReferences son solo los archivos NuGet, y puede agregarlos a través de la GUI si las versiones son diferentes a las mías anteriores.
Mi proyecto estándar de .NET es relativamente simple con pocos paquetes de Nuget. acabo de cambiar
<TargetFramework>netstandard2.0</TargetFramework>
PARA
<TargetFramework>**net461**</TargetFramework> en la sección PropertyGroup del archivo .csproj y esto hizo el trabajo por mí. Gracias a Brandon Barkley por su respuesta en los comentarios.
agregar a continuación en csproj
<PropertyGroup> <TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks> </PropertyGroup>Hay muchas respuestas similares aquí, pero no vi una que fuera exactamente lo que terminé haciendo, así que me gustaría dejar esto aquí en caso de que alguien más esté en los mismos zapatos.
Para que quede claro, mi proyecto era un programa de consola. Entonces, si está tratando de usar esta respuesta para otra cosa, su millaje puede variar.
En su archivo .csproj , dentro de la etiqueta <PropertyGroup></PropertyGroup> , modifique <TargetFramework> para reflejar lo siguiente:
<TargetFramework>net461</TargetFramework>
Ahora, en este ejemplo, estaba usando v4.6.1. Solo puedo suponer que conectará su versión detrás de la palabra "net", sin los puntos. ¡Buena suerte!