我可以预编译我的ASP.NET MVC应用程序吗?

时间:2008-12-03 04:20:39

标签: asp.net-mvc

我尝试预编译我的ASP.NET MVC应用程序并将其部署到IIS6框(带有通配符映射),但是我在渲染部分视图(用户控件)时遇到错误。在预编译之前,它在我的开发机器上工作正常。

错误是:

  “/”应用程序中的服务器错误   
  部分视图'ListGrid'不能为   被发现。以下地点是
  搜索:
  〜/查看/计划/ ListGrid.aspx
  〜/查看/计划/ ListGrid.ascx
  〜/查看/共享/ ListGrid.aspx
  〜/查看/共享/ ListGrid.ascx

我检查了Views \ Shared的文件,但它不存在,我认为这是正常的,因为它是预编译的。但只是为了咯咯笑,我在该文件夹中放了一个空白文件名为ListGrid.ascx,但后来我收到了这个错误:

  “/”应用程序中的服务器错误   
  文件'/Views/Shared/ListGrid.ascx'
  尚未预编,也不能
  请求。

我用Google搜索并搜索了但是找不到任何类似的问题,但没有运气。

2 个答案:

答案 0 :(得分:16)

您可以通过将其置于项目属性中的后置构建操作中来预编译MVC应用程序:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -p "$(ProjectDir)." -v /$(ProjectName)

这比没有它需要更长的时间,但是你可以更好地检测在部署之前在运行时发生的一些错误。

如果您的视图中包含无效代码或使用此方法缺少视图,则编译将失败。

答案 1 :(得分:3)

虽然您可以预编译MVC站点,但ascx和aspx视图文件不在编译的dll中,只有.cs文件。您仍然需要部署.aspx和.ascx视图文件。

希望这有帮助