asp.net-mvc - 将 MVC 3 rc1 Razor cshtml 文件构建操作设置为编译有任何问题吗?

标签 asp.net-mvc compilation razor buildaction

默认构建操作已从“无”更改为“内容”,据我所知是为了支持 Visual Studio 发布/部署。

对于特定项目,我不使用Visual Studio发布/部署方法,也不需要从命令行编译。

将构建操作设置为“编译”似乎仍然可以编译,并且可以为 cshtml 中的任何编码错误生成编译时错误和警告。

与通常的仅运行时错误相比,这似乎有巨大的好处。

如果我将构建操作更改为“编译”,有谁知道我以后会遇到什么问题?

非常感谢..

编辑:除了 VS 部署或命令行编译之外,我不确定将来可能会遇到什么问题,但为了安全起见,我选择了 marcind 在他的评论中提到的预编译选项。我将其标记为最接近的答案。

最佳答案

将 Razor 文件设置为“编译”应该不起作用(我很惊讶你说它对你有用),因为标记为“编译”的文件会传递到适合您的项目类型的语言编译器。大多数 Razor 文件不是有效的 C# 或 VB 源文件,它们会产生编译器错误。

看起来 VS 确实做了一些奇怪的事情,并且当您从 IDE 编译时并不总是显示错误。但是,当您直接从命令行编译项目时,它总是会失败。

所以回答你的问题

  1. 因为它不起作用
  2. 它不会起作用(现在或以后)。事实上,当您发布/部署网站时,您的 Razor 文件不会被复制。

从技术角度来说,“构建操作”需要是“内容”,因为这就是 ASP.NET 发布/部署的工作方式(在早期预览中它是“无”,因为 VS 实际上并不了解有关 Razor 文件的任何信息,并且这是默认行为;“更改”的目的是让事情正常运行)。

关于asp.net-mvc - 将 MVC 3 rc1 Razor cshtml 文件构建操作设置为编译有任何问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4214810/

相关文章:

compilation - gfortran:非法预处理器指令和无效字符/非数字字符编译错误

c++ - OpenSSL 1.0.0d 编译然后生成 DLL

c# - 使用嵌套数据创建 Razor 表

c# - 使用 ASP.NET MVC 在 View 的 EditorFor() 方法中显示 ViewBag 的值

c# - 如何在 mvc4 中使用旧式 sql

asp.net-mvc - 禁用生产环境中的 Glimpse 和 glimpse.axd

shell - 编译 Readline 时对 "tputs"的 undefined reference

javascript - 验证 jQuery 中的复选框组

asp.net-mvc - MVC ASP.NET 缩小 View .cshtml

javascript - 在 Google map V3 上动态添加 InfoWindows 和标记