web-dev-qa-db-fra.com

Convertir .Net Core en .Net Framework

J'ai un projet Web de projet .Net Core et, pour diverses raisons, je souhaite le convertir en projet .Net Framework.

Y a-t-il un moyen facile de faire cela ou dois-je recommencer et importer le code des projets précédents

24
Richard Watts

J'ai chargé le projet principal dans la communauté VS 2017 RC et ouvert * .csproj dans un éditeur de texte. 

Il suffit de supprimer teg 

<RuntimeFrameworkVersion>

et remplacer

<TargetFramework>netcoreapp1.1</TargetFramework>

à 

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

Et après tout, dans les propriétés du projet, définissez-les sur un autre framework et réinitialisez-les (le rechargement et la réparation de VS *.

19
Alexander

Aucune des réponses ici n'a fonctionné pour moi. Dans .Net Core 2, le fichier project.json n’existe plus. Cependant, j'ai résolu ce problème en procédant comme suit. 

1) J'ai supprimé tous les paquets de nugets de mon projet existant.

2) J'ai créé un projet distinct d'application Web principale .net, ciblant .net 4.61. C'était pour obtenir les paquets de nuget par défaut.

3) J'ai modifié le fichier .csproj du projet temporaire, copié tous les nœuds PackageReference dans ItemGroup et les ai collés dans mon fichier .csproj de projets existant.

4) Modification du noeud TargetFramework (à l'intérieur de PropertyGroup) de "netstandard2" à "net461"

J'ai eu quelques modifications de paquet à traquer et à résoudre, mais sinon, j'ai pu exécuter. 

7
Brandon Ahearn

Cela a fonctionné pour moi dans VS2017:

Commencez avec le modèle de projet Web principal .net.

Éditez * .csproj afin qu'il ressemble à ceci:

<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>

Sauver et fermer.

Essayez d'exécuter le projet.

Le PackReferences est juste les fichiers NuGet, et vous pouvez les ajouter via l'interface graphique si les versions sont différentes des miennes ci-dessus.

4
Greg Gum

Je l'ai fait et ça a marché

effacer 

"Microsoft.NETCore.App": {
      "version": "1.1.0",
      "type": "platform"
    }

de project.json

puis remplacez la partie frameworks par ceci:

 "frameworks": {
    "net46": { }
  },

puis restaurez les paquets.

EDIT: Ceci est obsolète maintenant.

2
Mu'men Tayyem

Mon projet standard .net est relativement simple avec quelques paquets Nuget. Je viens de changer

<TargetFramework>netstandard2.0</TargetFramework>

À

<TargetFramework>**net461**</TargetFramework> dans la section PropertyGroup du fichier .csproj et cela a été efficace pour moi .. Merci à Brandon Barkley pour votre réponse dans les commentaires.

0
Pawan

ajouter ci-dessous dans csproj

  <PropertyGroup>
    <TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
  </PropertyGroup>
0
lemon

Pour y parvenir, vous devez suivre plusieurs étapes.

  1. Tout d’abord, faites un clic droit sur le fichier .csproj et ajoutez ce qui suit

   <TargetFrameworks>netstandard2.0;netcoreapp2.0;net35;</TargetFrameworks>
        <RuntimeIdentifiers>win7-x86;win7-x64</RuntimeIdentifiers> <EnableDefaultCompileItems>false</EnableDefaultCompileItems>

  1. Une fois ces modifications effectuées, rechargez le projet et générez-le.
  2. Cela générera les fichiers .dll et le package Nuget pour thisbuild dans le dossier Debug/Release du projet.
  3. Ajoutez ces .dll au nuget et accédez à ces projets à partir de Nuget.

Essayez les étapes ci-dessus. Cela devrait marcher. 

0
Sai Kiran