【问题标题】:Any issues setting MVC 3 rc1 Razor cshtml file Build Action to Compile?将 MVC 3 rc1 Razor cshtml 文件构建操作设置为编译有任何问题吗?
【发布时间】:2011-05-12 00:25:39
【问题描述】:

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

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

将构建操作设置为“编译”似乎仍然可以编译,此外还有编译时错误和针对 cshtml 中的任何编码错误生成警告的额外好处。

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

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

非常感谢..

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

【问题讨论】:

    标签: asp.net-mvc compilation razor buildaction


    【解决方案1】:

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

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

    所以回答你的问题

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

    从技术上讲,“构建操作”必须是“内容”,因为这就是 asp.net 发布/部署的工作方式(在早期的预览中,它是“无”,因为 VS 实际上并不了解 Razor 文件和这是默认行为;“更改”的目的是让一切正常运行)。

    【讨论】:

    • 感谢您的回复。更新了问题以限定我不使用发布/部署。还将“它仍然有效”更改为“似乎仍然可以编译”——因为它确实可以成功,除非您在 cshtml 中出现语法错误。我认为这非常有用,但似乎找不到任何文档..
    • 您可以尝试从命令行编译您的应用程序吗?打开一个 VS 命令行,进入你的项目目录,然后运行msbuild ProjectName.??proj
    • 顺便说一句,已经有一个用于预编译视图的工具:stackoverflow.com/questions/383192/compile-views-in-asp-net-mvc
    • 感谢预编译选项,这就是我们所需要的!抱歉,这个问题没有更准确。编辑以限定我也不需要命令行编译。您已经回答了我问题的第一部分,对此表示赞同并作为参考,谢谢。
    猜你喜欢
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多