我有一个闪亮的新Asp.Net核心MVC应用程序,它引用了一些较旧的net45
库。
在完整的net45框架上与Asp.Net Core RC1一起使用。从Asp.NET Core rc1迁移到rc2我遇到了一个障碍,我不知道如何修复。
该应用程序是一个使用EF6,Autofac,Kendo.MVC的ASP.NET核心应用程序,它需要在完整的.Net 4.6框架上运行,因为有使用WCF的参考库。
在从rc1迁移到rc2时,我首先更新NuGet.config供稿以指向https://www.myget.org/F/aspnetcirelease/api/v3/index.json
然后我对project.json
AspNet
更改为AspNetCore
rc1-final
更改为*
MVC
和MVC Tag Helpers
是否已从6.0
重命名为1.0
Application Insights
Microsoft.AspNet.Tooling.Razor
"Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0-*" }
"content": [ "wwwroot", "Views", "web.config", "appsettings.json" ]
AspNetCore.*
而不是AspNet.*
"frameworks": {
"netcoreapp1.0": {
"imports": [
"net45"
]
}
}
我做了dotnet restore
,一切都解决了,除了1个包:
error: Package Kendo.Mvc 2016.1.412 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Kendo.Mvc 2016.1.412 supports:
error: - dnx451 (DNX,Version=v4.5.1)
error: - dnxcore50 (DNXCore,Version=v5.0)
error: One or more packages are incompatible with .NETCoreApp,Version=v1.0.
info : Committing restore...
Errors in project.json
Package Kendo.Mvc 2016.1.412 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Kendo.Mvc 2016.1.412 supports:
- dnx451 (DNX,Version=v4.5.1)
- dnxcore50 (DNXCore,Version=v5.0)
One or more packages are incompatible with .NETCoreApp,Version=v1.0.
因此,Kendo.MVC需要引用net45
或net451
而不是dnx451
,但由于这是来自NuGet Feed,我无法更改此内容。
你知道我是否可以快速修复而不是等待下一个版本的Kendo.MVC?
答案 0 :(得分:7)
你的方法很接近。做得好。有一些变化/补充要做。以下内容适用于dotnet restore
,然后dotnet run
。 full code listing is on GitHub。.NET Core (netcoreapp
) is not compatible with .NET Framework (net
)。
frameworks
因"type" : "platform"
而失败,因此您无法导入net45
。您的错误表明Kendo.Mvc
与dnx451
和dnxcore50
兼容;导入其中一个而不是。然后为Kendo.Mvc
所依赖的某些软件包添加便携式导入(如果您不这样做,您将看到构建错误,告诉您这样做。)
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dnxcore50",
"portable-net45+win8+wp8"
]
}
}
现在您的应用将恢复并构建。但它还没有运行。
更改您对Microsoft.NETCore.App
的依赖关系,而不是runtimes
。否则你的应用程序将无法自行运行,因为NuGet将取消软件包的资产。
"dependencies" :
{
// others omitted for clarity
"Microsoft.NETCore.App": "1.0.0-*",
"Kendo.Mvc": "*"
}
添加Structure of c.pred部分;我们现在在project.json中指定它,而不是依赖dnvm
。
"runtimes": {
"win8-x64": {}
}