【问题标题】:MVC3 compiling views is slowMVC3 编译视图很慢
【发布时间】:2012-02-22 00:26:28
【问题描述】:

在 Visual Studio 2010 中处理 c# MVC3 应用程序时,我通过编辑我的项目文件并设置了精彩的标志来打开视图编译

`<MvcBuildViews>false</MvcBuildViews>`

为真。我喜欢它,因为它意味着我可以编译我的观点并捕捉错误。

我现在唯一的问题是它不是很快! (我已尝试将其关闭,然后又恢复到全速。)

看起来它每次都重新编译每个视图——我目前有大约 50 个视图,所以理想情况下它只会编译自上次以来发生变化的页面。这有可能吗?

【问题讨论】:

    标签: c# visual-studio-2010 asp.net-mvc-3


    【解决方案1】:

    我认为不可能在同一个项目中以这种方式编译。您可以尝试将视图拉出到单独的项目中,并以这种方式进行设置。

    http://www.chrisvandesteeg.nl/2010/11/22/embedding-pre-compiled-razor-views-in-your-dll/

    【讨论】:

    • 这是个好主意,但我认为它不会有帮助,在编译该项目中的所有这些视图时它仍然会很慢。
    • 它会....但希望他们只会预编译一次,因为引用的项目没有改变。可能值得一试,看看它在那种情况下是否有效
    • 这很好,因为如果我要更改控制器中的代码,它不会重新编译视图。不错的一个:)
    【解决方案2】:

    据我所知,构建视图是一个孤注一掷的标志。

    我建议为开发环境关闭此选项关闭,但为指向您的主要开发分支的持续构建系统打开它打开。这样,如果您提交了破坏视图的内容,您仍然可以收到一封电子邮件,而无需在开发过程中为每个构建增加大量时间。

    【讨论】:

    • 我实际上建议相反。团队中的其他人可能会在构建完成之前更新,现在他们无法在本地工作站上编译。我宁愿我的团队知道他们提交的代码不会破坏构建,而不是希望他们不会。
    • @Andy 完全否定了这一点。 StriplingWarrior 这是个好主意——我没想到 :)
    • @LachlanB 我的评论并不能解决您的问题,但我的意思是,也许还有其他因素需要考虑。如果只有你,那就去吧,如果你破坏了构建也没关系。但是在较大的团队中,签入无法编译的代码现在可以为团队带来很大一部分生产力。如果您有纪律,您可以将其关闭,直到您提交并进行预提交编译。这将解决这两个问题,但我发现人们忘记并最终提交了使视图编译关闭的更改。
    • @Andy:感谢您的意见。显然,没有一个单一的工作流程对每个团队都是最好的。理想情况下,每个成员都会在提交之前进行完整的编译并运行所有单元测试,但根据我的经验,在开发过程中为每个构建添加半分钟会比偶尔的构建损坏减慢生产速度,前提是损坏的构建通过电子邮件发送给所有团队成员立即地。使用现代 DVCS,可以很容易地移回非破坏性变更集,甚至“退出”有问题的变更集,同时提交者弄清楚他们需要做些什么不同的事情。
    • 你们都提出了很好的观点,非常感谢您的想法。我会在接下来的几天里思考这个问题。不知道在mvc4有没有改进?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多