我正在创建概念验证解决方案,该解决方案将使用实体框架共享项目。我希望共享项目能够被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%" ]
}
}
它只能通过json文件解决。什么是“netcoreapp1.0”,这是你的共享项目吗?什么类型的这个共享项目?运行时组件?如果你可以成功构建,你可以调试异常抛出的位置吗? –
我不知道如何解释notcoreapp1.0,但我发现在stackoverflow问题上的更多信息:[link](http://stackoverflow.com/questions/36962930/whats-the-difference-between-the-new-netstandardapp -and-netcoreapp-TFMS)。我会用你提供的附加信息编辑我的文章。 – VorSiechtIP