我职业生涯中第一次使用ASP.Net(v3.5)项目,该项目已设置为Visual Studio 2008/10 网站项目。 / p>
由于各种原因,我并不热衷于这种工作方式,但目前为止,直到公司看到在名称空间,设计师和项目文件等环境中工作的优点,我必须继续使用现有的代码库。
自从我开始讨论以来,我遇到了一些奇怪的问题,但也许最奇怪的是,虽然VS让我构建代码,但它并不能可靠地获取编译错误,因此直到运行时才会注意到这些错误。 / p>
我知道网站模型允许在针对特定请求进行动态/热编译时但我无法理解为什么当我手动(F5)构建/重建项目时它不会这样做。
你可以想象它非常烦人,我找不到解决方法。 StackOverflow的任何人都可以帮助提出更好的建议吗?
答案 0 :(得分:2)
如果在aspx或ascx文件中有一个register命令,并且尚未在项目中注册程序集,则在运行时才会获取此命令。这可能是问题吗?
<%@ Register TagPrefix="Custom" Namespace="CustomControlNamespace" Assembly= "CustomControl" %>
如果您在解决方案中包含Web部署项目并将其设置为预编译您的站点,它将获取这些类型的错误,因为它将编译标记页以及后面的代码,而目前,你只是编译你的代码和设计师文件。
答案 1 :(得分:1)
Web部署项目可以选择编译所有内容,包括ascx,aspx和其他内容。它几次使我免于错误标记。
http://msdn.microsoft.com/en-us/magazine/cc163448.aspx取消选中“make updatable”以强制编译所有内容。在大型应用程序上,这可能需要很长时间。当你打开文件后面的所有代码都消失了,ascx文件说“这是一个存根”时,你知道你有一个完整的编译。
即使经过那么多的编译,ASP.NET Profile,一些xml序列化和其他边缘情况仍会在运行时进行一些编译。
答案 2 :(得分:0)
最可能的原因是标记页面中存在编译错误。只有在第一次运行时才会编译它们。