Mvc CodeAnalysis依赖项恢复的问题:使用dotnet cli

10

我在恢复ASP.NET 5/ASP.NET Core 1.0的依赖项时遇到了错误。

看起来,Microsoft.AspNet.Mvc的几个依赖项(即Microsoft.CodeAnalysis.CSharp / .Common)被固定在似乎已过时的包上。

这需要使用dotnet cli工具并同时针对.NET Vanilla和.NET Core。

是否有任何方法可以让Mvc引用与Core兼容的CodeAnalysis版本?


在Visual Studio 2015(v14.0.24729.00 Update 1)中重现步骤:

  1. 文件> 新建> 项目> Web> ASP.NET Web应用程序
  2. API.NET 5模板> Web API
  3. 打开PM,运行命令dotnet restore

输出:

info : Restoring packages for C:\PATH_TO_SOLUTION\WebApplication2\src\WebApplication2\project.json...
error: Microsoft.CodeAnalysis.CSharp 1.1.0-rc1-20151109-01 is not compatible with DNXCore,Version=v5.0.
error: Microsoft.CodeAnalysis.Common 1.1.0-rc1-20151109-01 is not compatible with DNXCore,Version=v5.0.
error: Some packages are not compatible with DNXCore,Version=v5.0.
error: Microsoft.CodeAnalysis.CSharp 1.1.0-rc1-20151109-01 is not compatible with DNXCore,Version=v5.0 (win7-x64).
error: Microsoft.CodeAnalysis.Common 1.1.0-rc1-20151109-01 is not compatible with DNXCore,Version=v5.0 (win7-x64).
... (loads more errors) ...

project.json文件包含:

{
  ...
  "dependencies": {
    ...
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    ...
  }
  ...
  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },
  ...
}
2个回答

3

使用(目前)最新的稳定版本只能将dnxcore50作为目标框架。在我的project.json中:

"Microsoft.CodeAnalysis.Common": "1.1.1",
"Microsoft.CodeAnalysis.CSharp": "1.1.1"

谢谢你的回答。你把这个放在你的 project.json 文件的哪里?如果我把它放在 "dependencies" 里面,那么两个框架都会出现解析错误。 - dav_i
我的依赖项中确实如此。你的所有NuGet源是否可用?如果有一个不可用,你的输出应该记录下来。 - janpieter_z
奇怪的是它没有报错,只是抱怨“无法解析”。然而,我尝试运行命令 dotnet restore -s https://api.nuget.org/v3/index.json,然后引用的包就安装好了。然后再运行 dotnet build 就可以正常工作了! - dav_i
有趣。你的软件包源中没有意外地运行v2吧? - janpieter_z
不是!我的漫游 nuget.config 是 v3。 - dav_i
我在尝试使用RC2进行dotnet restore时遇到了这个错误,而这个解决方案似乎无法解决它 - 现在我得到了Microsoft.CodeAnalysis.Common 1.1.1与DNXCore,Version=v5.0不兼容的错误。 - Greg Ennis

2

我只需要从NuGet Package Manager中安装最新版本的Microsoft.CodeAnalysis.Common,就可以成功地完成操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接