如何使Visual Studio的“编译”一个.aspx文件?(How do I make Visu

2019-09-22 14:32发布

在我的ASP.NET MVC应用程序,我有一个.aspx文件。 我在Visual Studio 2010 Project Explorer树中选择它,然后转到文件属性 - 在“生成操作”设置为“内容”。 我改“建设行动”,以“编译”,并要求Visual Studio来构建项目。 我得到的编译器输出我的.aspx文件中出现以下错误信息:

C:\PathToProject\MyFile.aspx(1,1): error CS0234: The type or namespace name 'global_asax'
    does not exist in the namespace 'ASP' (are you missing an assembly reference?)

.aspx文件的第一行是:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/My.Master" Inherits="System.Web.Mvc.ViewPage" %>

这使我怀疑...

什么是编译器试图抱怨,我如何让它编译.aspx文件?

Answer 1:

视图的的.aspx必须有它的生成操作设置为内容。

为了使预编译(或,至少,编译器错误检查)在生成时,添加

    <MvcBuildViews>true</MvcBuildViews>

在第一个<的PropertyGroup>在.csproj的。



Answer 2:

作为@KennyZ说,ASPX / ASCX /硕士/ CSHTML文件不被“编译” - 不作为常规构建过程的一部分呢。 这是因为这些文件被编译成在第一次请求页面类,这是为了让网站管理员修改的文件上这去,这一般来说是个好主意,特别是如果ASPX文件包含了很多内容。

需要注意的是VS文件属性生成操作不控制此设置-我觉得BuildAction属性应该被隐藏,或者好至少记录-它不能很好地通过开发者社区的理解。

但这是可以完成的! 在VS2005当他们推出了命运多舛的“网站”项目(为VS2003“Web应用程序”,直到VS2005 SP1出来替换)不存在对ASPX / ASCX /主文件预编译到应用程序的组件的选项 - 它没有留下一个不包含任何内容存根* .aspx文件,而是引用的预编译的页面类。

你仍然可以做到这一点与VS2010,但你需要使用命令行aspnet_compiler.exe的图形用户界面,不适用于Web应用程序项目存在。

还有更多的文档在这里: http://msdn.microsoft.com/en-us/library/bb398860%28v=vs.100%29.aspx

在这里: http://msdn.microsoft.com/en-us/library/ms229863%28v=vs.100%29.aspx



文章来源: How do I make Visual Studio “compile” a .aspx file?