61 votes

Convertir .Net Core en .Net Framework

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

Existe-t-il un moyen simple de procéder, ou dois-je recommencer et importer le code des projets précédents ?

0 votes

Il n'existe pas de moyen automatique de le faire et je doute sérieusement qu'il y en ait un jour.

0 votes

Ce lien pourrait peut-être vous aider : blogs.msdn.microsoft.com/dotnet/2016/02/10/porting-to-net-core

0 votes

@raBinn Ce n'est pas ce que demande l'OP.

31voto

Alexander Points 584

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

Supprimez simplement la 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éfinir un autre cadre et réinitialiser (VS recharge et répare le fichier *.csproj).

4 votes

Mon fichier csproj n'avait pas la balise <RutimeFrameworkVersion>, mais j'ai suivi le reste de ces instructions et cela a quand même fonctionné pour mon projet.

0 votes

Cela ne me convient pas du tout. Qu'entendez-vous par "réparation" ?

0 votes

@MarkusStenqvist- lorsque vous démarrez VS, vous "voyez" un nouvel enregistrement dans le fichier *.csproj et créez la bonne structure à l'intérieur.

20voto

Greg Gum Points 1441

Cela a fonctionné pour moi dans VS2017 :

Commencez par un modèle de projet web .net core.

Modifiez *.csproj pour 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>

Enregistrer et fermer.

Essayez de lancer le projet.

Le PackReferences ne contient que les fichiers NuGet, et vous pouvez les ajouter via l'interface graphique si les versions sont différentes de la mienne.

1 votes

Ceci a fonctionné parfaitement, <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> n'a pas fonctionné. Je ne sais pas trop pourquoi

8voto

Brandon Ahearn Points 71

Aucune des réponses données 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 suivant les étapes suivantes.

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

2) J'ai créé un projet d'application web .net core séparé, ciblant .net 4.61. Ceci afin d'obtenir les paquets nuget par défaut.

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

4) Modifier le nœud TargetFramework (dans PropertyGroup) de "netstandard2" à "net461".

J'ai eu quelques changements de paquets à traquer et à résoudre, mais sinon j'ai pu fonctionner.

0 votes

Maintenant, en 2017, dans mon cas, j'ai mis net471

0 votes

@Tony bon point. Je suis maintenant à 472. Mais c'était sans conséquence, car une fois le changement effectué, on peut le modifier via les propriétés du projet dans VS.

2voto

Mu'men Tayyem Points 85

C'est ce que j'ai fait et cela a fonctionné

supprimer

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

à partir de project.json

puis remplacer la partie cadre par ceci :

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

puis restaurer les paquets.

EDIT : Ceci est maintenant dépassé.

0voto

Sai Kiran Points 1

Il y a plusieurs étapes à suivre pour y parvenir.

  1. Cliquez d'abord avec le bouton droit de la souris 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>

  2. Une fois ces changements effectués, rechargez le projet et construisez-le.

  3. Cette opération génère le .dll et le paquet Nuget pour cette dans le dossier Debug/Release du projet.

  4. Ajouter ces .dll dans le nuget et accéder à ces projets à partir de nuget.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X