3

J'ai construit une application MVC plate simple et plate que je voudrais voir fonctionner sous Linux. Il utilise EF pour tirer quelques enregistrements d'une table mysql et les afficher dans une vue. Tout se construit et fonctionne sur mon hôte (Win10) mais ne sera pas dans la machine virtuelle Ubuntu que j'ai testé avecdotnet core sur Ubuntu Linux en utilisant asp.net MVC et EF MySQL erreur NU1001: impossible de restaurer MySql.Data.EntityFrameworkCore

Après avoir fait une "restauration dotnet", j'ai l'erreur suivante avec "dotnet build" ou "run dotnet":

projet CoreCrossPlatformFlat (.NETCoreApp, Version = v1.0) sera compilé parce que la version ou la CLI de bitness ont changé depuis la dernière construction CoreCrossPlatformFlat pour compilation .NETCoreApp, Version = v1.0 /opt/dotnet/corecrossplatform/src/CoreCrossPlatformFlat/project.json(25,52): erreur NU1001: la dépendance MySql.Data.EntityFrameworkCore> = 7.0.4-IR-191 n'a pas pu être résolu.

La compilation a échoué. 0 Avertissement (s) 1 erreur (s)

Pour votre information: Voici ce que "dotnet --info" rapports:

Outils de commande .NET (ligne-preview2-003121) 1.0.0

information sur le produit: version: 1.0.0-preview2-003121 Commit hachage SHA-1: 1e9d529bc5

Runtime Environment: OS Nom: ubuntu OS version: 16,04 OS Plate-forme: Linux RID: ubuntu.16.04 64 x

Pour la machine virtuelle, je l'ai suivi ces instructions:

https://www.microsoft.com/net/core#ubuntu

Le project.json ressemble à ceci:

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0", 
     "type": "platform" 
    }, 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Razor.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0", 
    "Microsoft.EntityFrameworkCore": "1.0.0", 
    "MySql.Data.Core": "7.0.4-IR-191", 
    "MySql.Data.EntityFrameworkCore": "7.0.4-IR-191" 
    }, 

    "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" 
    }, 

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

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "Views", 
     "Areas/**/Views", 
     "appsettings.json", 
     "web.config" 
    ] 
    }, 

    "scripts": { 
    "prepublish": [ "bower install", "dotnet bundle" ], 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 
} 

Voici un zip de la solution si cela aide: https://s3.amazonaws.com/kilonova-public/code/CoreCrossPlatformFlat.zip

+0

Avez-vous déjà exécuté 'dotnet restore'? –

+0

@NateBarbettini - Oui ... désolé je ne l'avais pas mentionné. L'erreur reste la même. –

+0

Peut-être noter: a été capable d'utiliser le MySql.Data.Core pour écrire du code ADO.NET de base, qui a fonctionné avec succès sur la machine virtuelle Ubuntu. À ce stade, je ne suis pas sûr s'il y a juste un problème de restauration du paquet EF ou ce n'est pas prêt pour Linux? –

Répondre

0

Rencontré le même problème aujourd'hui. Essayez de supprimer tous les fichiers et dossiers sauf le fichier project.json et tous les fichiers .cs dans votre dossier de projet. Puis dotnet restore et dotnet run. Ça marche pour moi. :)