wake-up-neo.com

Fehler beheben "Microsoft.NETCore.App 1.0.0 unterstützt kein Framework .NETFramework, Version = v4.6.1"

Ich habe eine vollständige Anwendung von ASP.NET Core 1.0, die mit net461-Referenzen ausgeführt wird. Jetzt versuche ich, ein weiteres Framework hinzuzufügen - netcoreapp1.0. Dafür habe ich mein project.json folgendermaßen aktualisiert:

{
   "userSecretsId":"",
   "version":"2.4.0-*",
   "buildOptions":{
      "emitEntryPoint":true,
      "preserveCompilationContext":true
   },
   "dependencies":{
      "Microsoft.ApplicationInsights.AspNetCore":"1.0.0",
      "Microsoft.AspNetCore.Authentication.Cookies":"1.0.0",
      "Microsoft.AspNetCore.Diagnostics":"1.0.0",
      "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore":"1.0.0",
      "Microsoft.AspNetCore.Identity":"1.0.0",
      "Microsoft.AspNetCore.Identity.EntityFrameworkCore":"1.0.0",
      "Microsoft.AspNetCore.Mvc":"1.0.0",
      "Microsoft.AspNetCore.Mvc.TagHelpers":"1.0.0",
      "Microsoft.AspNetCore.Server.IISIntegration":"1.0.0",
      "Microsoft.AspNetCore.Server.Kestrel":"1.0.0",
      "Microsoft.AspNetCore.StaticFiles":"1.0.0",
      "Microsoft.EntityFrameworkCore":"1.0.0",
      "Microsoft.EntityFrameworkCore.SqlServer":"1.0.0",
      "Microsoft.Extensions.Configuration.CommandLine":"1.0.0",
      "Microsoft.Extensions.Configuration.FileExtensions":"1.0.0",
      "Microsoft.Extensions.Configuration.Json":"1.0.0",
      "Microsoft.Extensions.Configuration.UserSecrets":"1.0.0",
      "Microsoft.Extensions.Logging":"1.0.0",
      "Microsoft.Extensions.Logging.Console":"1.0.0",
      "Microsoft.Extensions.Logging.Debug":"1.0.0",
      "Microsoft.VisualStudio.Web.BrowserLink.Loader":"14.0.0",
      "Microsoft.VisualStudio.Web.CodeGenerators.Mvc":"1.0.0-preview2-final"
   },
   "tools":{
      "BundlerMinifier.Core":"2.0.238",
      "Microsoft.AspNetCore.Razor.Tools":"1.0.0-preview2-final",
      "Microsoft.AspNetCore.Server.IISIntegration.Tools":"1.0.0-preview2-final",
      "Microsoft.Extensions.SecretManager.Tools":"1.0.0-preview2-final"
   },
   "commands":{
      "ef":"EntityFramework.Commands",
      "web":"Microsoft.AspNetCore.Server.Kestrel"
   },
   "frameworks":{
      "net461":{

      },
      "netcoreapp1.0":{
         "imports":[
            "dotnet5.6",
            "portable-net45+win8"
         ]
      }
   },
   "runtimes":{
      "win10-x64":{

      },
      "win81-x64":{

      },
      "win8-x64":{

      },
      "win7-x64":{

      }
   },
   "publishOptions":{
      "exclude":[
         "**.user",
         "**.vspscc",
         "wwwroot",
         "node_modules"
      ]
   },
   "scripts":{
      "prepublish":[
         "npm install",
         "bower install",
         "gulp clean",
         "gulp min"
      ]
   }
}

Nach dem Ändern von project.json erhielt ich diesen Fehler:

Das folgende Projekt konnte nicht ausgeführt werden: MVC6_Full_Version (.NETCoreApp, Version = v1.0) Ursache: Die erwartete coreclr-Bibliothek wurde nicht gefunden im Paketdiagramm. Bitte führen Sie dotnet restore erneut aus.

Um dies zu beheben, habe ich dotnet restore Befehl ausgeführt, aber kein Glück.

Dann fügte ich diesen Block hinzu:

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

Nach dem Hinzufügen dieses Blocks habe ich einen anderen Fehler erhalten:

Code: NU1002 Beschreibung: Die Abhängigkeit Microsoft.NETCore.App 1.0.0 unterstützt nicht das Framework .NETFramework, Version = v4.6.1.

Grundsätzlich möchte ich in meinen Anwendungen beide Verweise hinzufügen - .NET Framework 4.6.1 und ASP.NET Core 1.0.

Wie löse ich diesen Fehler?

13
Sachin411

Es ist auf jeden Fall möglich, ASP.NET Core-Projekte mit .NET Framework oder .NET Core zu erstellen. Sie sind wirklich nahe dran - nur ein paar Änderungen erforderlich:

  • Entfernen Sie den Abschnitt runtimes, sofern Sie nicht beabsichtigen, native Kompilierungen durchzuführen (etwas ungewöhnlich).
  • Platzieren Sie den Verweis auf Microsoft.NETCore.App in einer dependencies-Sektion innerhalb von der netcoreapp1.0-Sektion. Ich habe die folgende Änderung getestet und es wird ohne Fehler wiederhergestellt und kompiliert:

project.json

...

   "frameworks": {
      "net461": {

      },
      "netcoreapp1.0": {
         "dependencies": {
            "Microsoft.NETCore.App": {
               "type": "platform",
               "version": "1.0.0"
            }
         },
         "imports": [
            "dotnet5.6",
            "portable-net45+win8"
         ]
      }
   }

Die Microsoft.NETCore.App-Abhängigkeit ist nur für .NET Core erforderlich. Wenn Sie sie hier hinzufügen, wird sichergestellt, dass sie verfügbar ist, wenn Sie dieses Framework erstellen.

Auch der Abschnitt commands ist veraltet und kann entfernt werden.

12
Nate Barbettini

Ich habe auf die .net-Kernklassenbibliothek in .net 4.6.1 verwiesen, indem ich Folgendes geändert habe. 

Bevor ich diese Fehlermeldung erhielt, als ich versuchte, auf den .net-Core von .net 4.6.1 zu verweisen enter image description here

Fix:

Original

    {
    "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Interop.SHDocVw.dll": "1.1.0",
    "Microsoft.mshtml.dll": "7.0.3300.1"
    },

    "frameworks": {
    //"net461": {},
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8",
        "net461"
      ]
    }
   },

    "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ]
    }
   }

Korrigiert

    {
     "dependencies": {
        "Interop.SHDocVw.dll": "1.1.0",
        "Microsoft.mshtml.dll": "7.0.3300.1"
     },

    "frameworks": {
        "net461": {
        },
        "netcoreapp1.0": {
        "dependencies": {
            "Microsoft.NETCore.App": {
            "type": "platform",
            "version": "1.0.0"
            }
        },
        "imports": [
            "dotnet5.6",
            "portable-net45+win8",
            "net461"
        ]
        }
    },

    "scripts": {
        "prepublish": [ "bower install", "dotnet bundle" ]
    }
}
1
chdev77