wake-up-neo.net

Konvertieren Sie .NET Core in .NET Framework

Ich habe ein .Net Core-Projekt-Webprojekt und möchte es aus verschiedenen Gründen in ein .Net Framework-Projekt konvertieren.

Gibt es eine einfache Möglichkeit, dies zu tun, oder muss ich erneut beginnen und den Code aus den vorherigen Projekten importieren

24
Richard Watts

Ich habe ein Kernprojekt in die VS 2017 RC Community geladen und * .csproj im Texteditor geöffnet. 

Löschen Sie einfach teg 

<RuntimeFrameworkVersion>

und ersetzen

<TargetFramework>netcoreapp1.1</TargetFramework>

zu 

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

Und schließlich in den Projekteigenschaften auf ein anderes Framework setzen und zurücksetzen (VS reload und repariert * .csproj-Datei).

19
Alexander

Keine der Antworten funktionierte für mich. In .Net Core 2 ist die Datei project.json nicht mehr vorhanden. Ich habe dieses Problem jedoch mithilfe der folgenden Schritte gelöst. 

1) Ich habe alle Nuget-Pakete aus meinem bestehenden Projekt entfernt.

2) Ich habe ein separates .net-Core-Web-App-Projekt erstellt, das auf .net 4.61 abzielt. Dies war zum Abrufen der Standard-Nuget-Pakete.

3) Ich habe die .csproj-Datei des temporären Projekts bearbeitet, alle PackageReference-Knoten in ItemGroup kopiert und in meine vorhandene .csproj-Projektdatei eingefügt.

4) Der TargetFramework-Knoten (in PropertyGroup) wurde von "netstandard2" in "net461" bearbeitet.

Ich hatte ein paar Paketänderungen, die ich aufspüren und beheben konnte, aber ansonsten konnte ich laufen. 

7
Brandon Ahearn

Das hat für mich in VS2017 funktioniert:

Beginnen Sie mit der .net Core-Webprojektvorlage.

Bearbeiten Sie * .csproj so, dass es so aussieht:

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

Speichern und schließen.

Versuchen Sie, ein Projekt auszuführen.

Bei den PackReferences handelt es sich lediglich um die NuGet-Dateien, die Sie über die GUI hinzufügen können, wenn sich die Versionen von meinen unterscheiden.

4
Greg Gum

Ich habe das gemacht und es hat funktioniert

löschen 

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

von project.json

ersetzen Sie dann den Frameworks-Teil durch Folgendes:

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

dann Pakete wiederherstellen.

EDIT: Das ist jetzt veraltet.

2
Mu'men Tayyem

Es gibt hier viele ähnliche Antworten, aber ich habe keine gefunden, die genau das war, was ich letztendlich getan habe. Deshalb möchte ich diese hier belassen, nur für den Fall, dass jemand anderes in den gleichen Schuhen ist.

Um klar zu sein, mein Projekt war ein Konsolenprogramm. Wenn Sie also versuchen, diese Antwort für etwas anderes zu verwenden, kann Ihr Kilometerstand variieren.

In deinem .csproj Datei, innerhalb der <PropertyGroup></PropertyGroup> Tag, ändere <TargetFramework> um Folgendes wiederzugeben:

<TargetFramework>net461</TargetFramework>

In diesem Beispiel habe ich jetzt v4.6.1 verwendet. Ich kann nur davon ausgehen, dass Sie Ihre Version hinter dem Wort "net" ohne die Punkte einstecken. Viel Glück!

2

In meiner Version von Visual Studio 2017 (15.6.2) musste ich nach dem 'Entladen des Projekts' mit der rechten Maustaste klicken und 'Bearbeiten <your project file> Auswählen:

  1. Fügen Sie den Knoten hinzu:

    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>

  2. Löschen Sie die Knoten:

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

0
VorTechS

Mein .net-Standardprojekt ist mit wenigen Nuget-Paketen relativ einfach. Ich habe mich gerade verändert

<TargetFramework>netstandard2.0</TargetFramework>

ZU

<TargetFramework>**net461**</TargetFramework> unter PropertyGroup-Abschnitt der .csproj-Datei und dies hat die Aufgabe für mich erledigt. Danke an Brandon Barkley für Ihre Antwort in den Kommentaren.

0
Pawan

füge unten in csproj hinzu

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

Um dies zu erreichen, müssen Sie mehrere Schritte ausführen.

  1. Klicken Sie zuerst mit der rechten Maustaste auf die .csproj-Datei und fügen Sie Folgendes hinzu

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

  1. Nachdem Sie diese Änderungen vorgenommen haben, laden Sie das Projekt erneut und erstellen Sie es.
  2. Dadurch werden die .dll-Dateien und das Nuget-Paket für thisbuild im Ordner Debug/Release des Projekts generiert.
  3. Fügen Sie diese .dll zum Nuget hinzu und greifen Sie über Nuget auf diese Projekte zu.

Versuchen Sie die obigen Schritte. Das sollte funktionieren. 

0
Sai Kiran