asp.net - full - Convertir.Net Core a.Net Framework
diferencias asp net asp net core (8)
Tengo un proyecto web .Net Core, y por varias razones quiero convertirlo en un proyecto .Net Framework.
¿Hay una manera fácil de hacerlo o tengo que empezar de nuevo e importar el código de los proyectos anteriores?
En mi versión de Visual Studio 2017 (15.6.2) después de "Descargar el proyecto", haciendo clic con el botón derecho y seleccionando "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 me funcionó en VS2017:
Comience con la plantilla de proyecto web .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.
Las PackReferences son solo los archivos de NuGet, y puede agregarlos a través de la GUI si las versiones son diferentes a las mías anteriores.
Hay varios pasos que debes seguir para lograr esto.
- Primero haga clic derecho en el archivo .csproj y agregue lo siguiente
<TargetFrameworks>netstandard2.0;netcoreapp2.0;net35;</TargetFrameworks>
<RuntimeIdentifiers>win7-x86;win7-x64</RuntimeIdentifiers> <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
- Una vez que haya realizado estos cambios, vuelva a cargar el proyecto y compílelo.
- Esto generará los archivos
.dll
y el paquete Nuget para esta compilación en la carpeta Debug / Release del proyecto. - Agregue estos
.dll
al nuget y acceda a estos proyectos desde nuget.
Pruebe los pasos anteriores. Esto debería funcionar.
He cargado el proyecto central en la comunidad de VS 2017 RC y he abierto * .csproj en el editor de texto.
Solo elimina teg
<RuntimeFrameworkVersion>
y reemplazar
<TargetFramework>netcoreapp1.1</TargetFramework>
a
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
Y, después de todo, las propiedades del proyecto se configuran en cualquier otro marco y se restablecen (el archivo * .csproj de recarga y reparación VS).
Hice esto y funcionó
borrar
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
}
de project.json
entonces reemplace la parte de los marcos con esto:
"frameworks": {
"net46": { }
},
luego restaurar los paquetes.
EDIT: Esto está desactualizado ahora.
Mi proyecto estándar .net es relativamente simple con pocos paquetes Nuget. Acabo de cambiar
<TargetFramework>netstandard2.0</TargetFramework>
A
<TargetFramework>**net461**</TargetFramework>
en la sección Grupo de propiedades del archivo .csproj y esto hizo el trabajo por mí. Gracias a Brandon Barkley por su respuesta en los comentarios.
Ninguna de las respuestas aquí funcionó para mí. En .Net Core 2, el archivo project.json ya no existe. Sin embargo, resolví este problema siguiendo los siguientes pasos.
1) Eliminé todos los paquetes nuget de mi proyecto existente.
2) Creé un proyecto de aplicación web .net por 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) Edite el nodo TargetFramework (dentro de PropertyGroup) de "netstandard2" a "net461"
Tuve algunos cambios de paquetes para rastrear y resolver, pero por lo demás pude ejecutar.
agregar abajo en csproj
<PropertyGroup>
<TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
</PropertyGroup>