2016-09-08 46 views
0

我正在創建概念驗證解決方案,該解決方案將使用實體框架共享項目。我希望共享項目能夠被UWP項目以及.Net Core網站引用。我能夠正確地使網站參考項目並使用Entity Framework Core。當我嘗試讓UWP應用程序使用相同的代碼時,它會編譯,但在運行時失敗。我也試着改變使用NetStandard1.4和NetStandard1.6的框架,但是實體框架核心無法正常工作。如何與.Net核心網站和UWP應用程序共享.Net Core項目?

我的共享項目是一個.Net核心類庫(VS中不是實際的共享項目類型)。

這是我在運行UWP應用程序時遇到的錯誤。當我嘗試創建一個新的上下文類,從的DbContext繼承它發生:

類型發生在 mscorlib.ni.dll的「System.IO.FileLoadException」的一個例外,但在用戶代碼中沒有處理

其他信息:無法加載文件或程序集 'System.Runtime,Version = 4.1.0.0,Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'或其依賴項之一。位於程序集清單定義中的 與程序集 的引用不匹配。 (來自HRESULT的例外:0x80131040)

下面是我用於共享項目的project.json。

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
    "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "NETStandard.Library": "1.6.0", 
    "System.ComponentModel.Annotations": "4.1.0", 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0", 
     "type": "platform" 
    } 
    }, 

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

    } 
} 

下面是該項目UWP

{ 
    "dependencies": { 
    "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2" 
    }, 
    "frameworks": { 
    "uap10.0": { 
     "imports": [ 
     "netcoreapp1.0" 
     ] 
    } 
    }, 
    "runtimes": { 
    "win10-arm": {}, 
    "win10-arm-aot": {}, 
    "win10-x86": {}, 
    "win10-x86-aot": {}, 
    "win10-x64": {}, 
    "win10-x64-aot": {} 
    } 
} 

這裏project.json對網站項目project.json

{ 
    "dependencies": { 
    "Domain": "1.0.0-*", 
    "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.EntityFrameworkCore.Sqlite": "1.0.0", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "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.NETCore.App": { 
     "version": "1.0.0", 
     "type": "platform" 
    }, 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0" 
    }, 

    "tools": { 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "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%" ] 
    } 
} 
+0

它只能通過json文件解決。什麼是「netcoreapp1.0」,這是你的共享項目嗎?什麼類型的這個共享項目?運行時組件?如果你可以成功構建,你可以調試異常拋出的位置嗎? –

+0

我不知道如何解釋notcoreapp1.0,但我發現在stackoverflow問題上的更多信息:[link](http://stackoverflow.com/questions/36962930/whats-the-difference-between-the-new-netstandardapp -and-netcoreapp-TFMS)。我會用你提供的附加信息編輯我的文章。 – VorSiechtIP

回答

0

我不確定UWP項目是否可以很好地與.NET Core項目配合使用。也許你可以嘗試改變你的EF項目到一個可移植類庫項目。

0

我想通了,請參閱從布萊斯答案Lambson GitHub

+0

(「內聯」答案。) – bricelam

+0

您可以將@ bricelam的回覆標記爲答案以結束此主題。 –

相關問題