升级现有项目以使用Roslyn编译器

时间:2015-07-29 21:27:09

标签: asp.net-mvc visual-studio-2015 roslyn

我安装了VS 2015并导入了现有的解决方案。此解决方案在App_Code文件夹中包含Razor帮助程序。错误列表抱怨:

  

类型或命名空间名称' global_asax'不存在于   命名空间' ASP' (你错过了一个程序集引用吗?)

经过一番研究后,我发现这是(或曾经)一个已知问题(参见This SO answerthis article)。这些文章中给出的解决方案是手动安装Microsoft.CodeDom.Providers.DotNetCompilerPlatform NuGet包。

所以我在我的网络应用程序项目中安装了NuGet包,错误就消失了。

但是现在我打开包管理器控制台抱怨它无法复制某些文件时出现错误。丢失文件的(不正确)路径在Microsoft.CodeDom.Providers.DotNetCompilerPlatform NuGet包配置信息中给出。

所有这些让我相信必须有更好的方法!

我错过了什么吗?难道我不能通过VS 2015自动获得新的Roslyn魔法吗?如果没有,是否有更好的方法将它安装到我现有的项目中?或者我只是绊倒了有人需要解决的破碎的基础设施位?

2 个答案:

答案 0 :(得分:2)

我在VS 2015中创建了一个新的MVC应用,并盯着它安装的NuGet包。事实证明我们显然需要安装

Microsoft.Net.Compilers NuGet包

(而不是Microsoft.CodeDom.Providers.DotNetCompilerPlatform包)。

编辑:经过一番摆弄这个解决方案之后,它似乎并不比我在OP中提供的(失败的)解决方案更好。但不要害怕,显然有一个答案(如果你正在运行VS 2015)。我将其作为一个单独的答案发布。

答案 1 :(得分:1)

事实上,每个this MSDN blog post解决方案是安装Microsoft.CodeDom.Providers.DotNetCompilerPlatform软件包(我希望并假设,自2015年7月我尝试以来,它们已经修复)。 VS 2015 UI中甚至还有一些神奇的功能,可以通过“项目”菜单安装该软件包。