3

我已經構建了一個簡單的平面dotnet核心MVC應用程序,我希望在Linux上看到它。它使用EF從mysql表中拉出幾條記錄並將它們顯示在視圖中。這一切都建立並運行在我的主機上(Win10),但不會在我已經啓動測試的Ubuntu虛擬機上運行。在Ubuntu Linux上使用asp.net MVC和EF的dotnet核心MySQL錯誤NU1001:無法恢復MySql.Data.EntityFrameworkCore

我做了「dotnet恢復」之後,出現以下「dotnet build」錯誤或「DOTNET運行」:

項目CoreCrossPlatformFlat(.NETCoreApp,版本= V1.0)將 編譯因爲自去年 構建編譯CoreCrossPlatformFlat的CLI的版本或位數改變 .NETCoreApp,版本= v1.0 /opt/dotnet/corecrossplatform/src/CoreCrossPlatformFlat/project.json(25,52): 錯誤NU1001:依賴項MySql.Data.EntityFrameworkCore> = 7.0.4-IR-191無法解析。

編譯失敗。 0警告(S)1個錯誤

FYI:這裏是 「DOTNET --info」 報道:

.NET命令行工具(1.0.0-preview2-003121)

產品信息: 版本:1.0.0-preview2-003121 提交SHA-1散列:1e9d529bc5

運行環境: 操作系統名稱:Ubuntu的 OS版本:16.04 OS平臺:Linux RID:ubuntu.16.04-64

對於VM,我按照這些指示:

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

的project.json看起來像這樣:

{ 
    "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%" ] 
    } 
} 

下面是該解決方案的zip文件,如果有幫助的話: https://s3.amazonaws.com/kilonova-public/code/CoreCrossPlatformFlat.zip

+0

你已經運行過'dotnet restore'嗎? –

+0

@NateBarbettini - 對...抱歉,我沒有提到它。錯誤仍然相同。 –

+0

也許值得注意的是:能夠使用MySql.Data.Core編寫一些在Ubuntu VM上成功運行的基本ADO.NET代碼。此時我不確定恢復EF軟件包是否存在問題,或者它只是沒有準備好用於Linux? –

回答

0

今天遇到同樣的問題。請嘗試刪除項目文件夾中除project.json文件和所有.cs文件之外的所有文件和文件夾。然後dotnet恢復和dotnet運行。這個對我有用。 :)