【问题标题】:Razor syntax highlighting not working in VS 2012 with MVC 5Razor 语法高亮在带有 MVC 5 的 VS 2012 中不起作用
【发布时间】:2013-10-03 19:08:33
【问题描述】:

我在 Visual Studio 2013 RC 中使用 MVC 5 RC 1。效果很好。

现在我将 VS 2012 中现有的 MVC 4 项目升级到 MVC 5,方法与 here 中描述的相同

我还更改了 web.config(s) - 请参阅“upgrading from MVC4 to MVC5

除了视图中 Razor/C# 代码的语法突出显示外,一切(构建、运行 Web 应用程序,甚至是智能感知)都能完美运行。

我还尝试了在 VS 2013 中创建的 MVC 5 项目。结果相同。所以我假设 VS 2012 不“理解”新程序集?!

有任何已知的解决方法或想法可以重新突出显示吗?

【问题讨论】:

    标签: c# razor visual-studio-2012 visual-studio-2013 asp.net-mvc-5


    【解决方案1】:

    微软发布了新版 ASP.NET Web Tools for VS 2012。 安装后语法高亮又回来了。

    http://blogs.msdn.com/b/webdev/archive/2013/11/18/announcing-release-of-asp-net-and-web-tools-2013-1-for-visual-studio-2012.aspx

    安装 VS 2012 Update 4 还不够。

    有一套离线安装程序可用。离线安装程序比 Web 平台工具调用程序 (WebNode11Pack.exe @ ~114KB) 更易于使用:

    如果您想要离线安装程序,请转至http://www.microsoft.com/en-us/download/details.aspx?id=41532

    • AspNetWebTools2013_1Setup.exe @ ~39MB
    • WebToolsExtensionsVS.msi(适用于 Visual Studio 2012 标准版[s])@ ~21MB
    • WebToolsExtensionsVWD.msi(适用于 Visual Studio 2012 免费“Web”版本[s])@ ~21MB

    【讨论】:

    • 这不是为我解决的问题。我已经安装了新版本的 Web 工具,但 Razor 语法仍然无法正常工作。有什么想法吗?
    • 这里和 Simon Hartcher 一样。我已经安装了所有工具并检查了 web.config 文件,但仍然没有运气。
    • 你能提供更多关于你的设置的细节吗?
    • 这语法对我来说有点用,但所有内容都用红色下划线。例如,即使是 ViewBag 也带有下划线并说:“名称 'ViewBag' 在当前上下文中不存在。”
    【解决方案2】:

    Visual Studio 2012 的 ASP.NET 和 Web 工具 2013.1 现已发布,应该可以解决 VS 2012 的 MVC5 智能感知问题。

    这个版本带来了大量的改进,包括一些 对 ASP.NET MVC 5、Web API 2、Scaffolding 和 面向 Visual Studio 2012 和 Visual Studio 2012 用户的实体框架 网络快递。

    您可以下载更新:http://blogs.msdn.com/b/webdev/archive/2013/11/18/announcing-release-of-asp-net-and-web-tools-2013-1-for-visual-studio-2012.aspx

    致版主:它可能只是一个下载链接,但这解决了问题,它对我有用,它对投票作为答案的用户有用。如果您要删除它,请说明原因,谢谢!

    【讨论】:

    • 你说得对。我也有点困惑,为什么你的答案突然消失了。这就是我自己提供链接作为答案的原因。但功劳归你所有!
    • 谢谢@Andreas 希望它不会再次被删除:)
    【解决方案3】:

    This answer声称VS2012无法理解Razor 3,所以你(和我)将不得不升级到VS2013

    【讨论】:

    • 反对者,请添加评论。我的回答在提出时是有效的,但从那时起,MS 增加了对 VS 2012 的支持,所以它现在有点过时了。但是,我认为不需要将其更新为与 C Style 发布的有效文本相同
    【解决方案4】:

    如果我在同一个项目中使用 VS2013,我目前正在使用一种解决方法来让 IntelliSense 在 VS2012 中工作(我认为这将无法正常工作); b) 如果我尝试使用 Razor 3 功能):

    将 web.config 更改为使用旧的 webpages 版本:

    <add key="webpages:Version" value="2.0.0.0" />
    

    为了确保这不会以任何方式影响生产,我添加了一个 web.config 转换:

    <add key="webpages:Version" value="3.0.0.0" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
    

    不幸的是,这种解决方法存在问题(到目前为止我已经注意到):

    • 扩展方法(如Html.RenderPartial() 无法识别并在设计器中显示为错误)。

    【讨论】:

    • 这是一个巧妙的解决方法 - 您遇到任何副作用了吗?
    • @Andreas - 目前还没有,但它还没有推广给其他开发人员,所以如果我发现任何东西,我会确保将它们添加到这个答案中。
    • 我注意到的第一个缺点(不知道它第一次是如何跳过我的)添加到答案中......使得解决方法相当无用但因为我现在坚持使用 MVC5,总比没有好。
    【解决方案5】:

    我从 Microsoft 开发人员那里得到了这个答案:

    尚未发布对 VS 2012 的 MVC 5/Razor 3 工具支持。我们希望在 11 月中旬提供此支持。

    所以目前接受的答案是正确的,但我们可以计划很快在 VS2012 中也提供这种支持。

    【讨论】:

    • 我今天安装了 VS2012 Update 4 并没有修复它。
    • 我给微软发了一封电子邮件,他们说支持仍在工作中,尚未发货。不幸的是,他们没有说更具体的内容:(
    • 我现在改用 VS2013。这次似乎已经在 VS2012 和 VS2013 之间进行了往返,并且我所有的插件都可以正常工作或更好。尚未发现使用 VS2013 与 VS2012 的初期问题,所以我留下了。没有理由再使用 VS2012。
    • @cirrus 你必须另外安装blogs.msdn.com/b/webdev/archive/2013/11/18/…
    【解决方案6】:

    在 Microsoft 平台安装程序中安装“ASP.NET and WebTools 2013.1 for Visual Studio 2012”

    【讨论】:

      【解决方案7】:

      对我来说,我的问题是我的构建文件被输出到bin 以外的目录。一旦我的文件被输出到bin,我的语法高亮就回来了。

      解决此问题的一种方法是创建一个构建后操作,将项目根目录 bin 文件夹中的文件(相对于项目外部的过滤器)复制到您的目标目录。

      以下文章解释: http://www.dennisonpro.info/managing-intellisense-in-razor-views-with-mvc-5-using-custom-builds-in-visual-studio-2013/

      【讨论】:

      • 从 'Bin' 重命名为 'bin' 对我有帮助
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 2018-05-19
      • 1970-01-01
      • 2013-11-14
      • 2013-08-18
      • 1970-01-01
      • 2011-03-06
      相关资源
      最近更新 更多