ASP.NET网站项目在编译时本身是否很慢,或者我可能有更深层次的问题?

Cᴏʀ*_*ᴏʀʏ 11 asp.net compiler-construction performance vs-web-site-project

我已经在客户端上创建了一个遗留的ASP.NET Web站点(而不是Web应用程序)项目一段时间了,而且编译时间慢,让我想知道:

是否已知网站项目在编译时(比Web应用程序项目更慢)?

这是一个非常小的网站,但整个解决方案有很多功能 - 有19个项目值得,其中18个很快编译(非网络项目).网站项目本身有大约100页和~15个用户控件(这些实际上占用了大约一半的编译时间),通常在30到60秒内编译.完整的重建更接近后者.

所以,我认为有些事情可能会减慢它(你揭穿它们):

  • (X)HTML验证问题(我们继承的代码有数千个关于验证问题的编译器警告).
  • 高级抽象 - 由于网站页面的代码是在运行时编译的,我猜测它为用户控件预先做的事情是一个漫长的过程,因此编译时的绑定可能会发生.
  • 仅仅是网站的大小?我知道这些不是非常有效的项目,相信我,我花了好几个小时试图将它转换为Web应用程序,但Visual Studio无法将单个ASPX文件解析为其.aspx/.designer.xx组件,因为我之前提到的验证问题.

假设我的客户不会批准超过几个小时来解决这个问题,是否有任何已知的快速修复,更改或优化可以帮助我解决问题?

我没有一台微不足道的电脑,所以它的处理能力不是问题.我还参与过相当大小和复杂的Web应用程序项目,只需几秒钟即可编译.

我几乎可以接受任何事情,所以我很想听听你的想法!此外,如果您认为这应该是一个维基,请告诉我.

Fra*_*man 5

我的观察结果是一样的:网站项目需要一段时间才能构建,比 Web 应用程序项目需要更长的时间。我想我找到了一些关于原因的信息,请查看:http://msdn.microsoft.com/en-us/library/aa730880(VS.80).aspx

搜索“迭代开发”。与 Web 应用程序项目相比,它是这样描述网站项目的:

默认情况下,每当您运行或调试任何页面时,Visual Studio 都会完全编译网站项目。这样做是为了识别站点中任何位置的编译时错误。但是,完整的站点构建会显着减慢迭代开发过程,因此通常建议您更改构建项目选项以仅在运行或调试时编译当前页面。


Tob*_*orn 3

首先阅读此博客文章在 Visual Studio 2005 中优化网站设计时构建性能的提示

\n\n

提出的要点:

\n\n
    \n
  • 不要禁用批量编译
  • \n
  • 利用服务器端编译
  • \n
  • 将 App_Code 文件移动到单独的类库项目中
  • \n
  • 检查是否有冲突的依赖关系
  • \n
  • 在 Windows 窗体设计器选项中关闭 AutoToolboxPopulate。
  • \n
  • 禁用 HTML 编辑验证
  • \n
\n\n

另一个可以帮助您的选项是切换到 RAM 磁盘:从 RAM 磁盘运行开发 \xe2\x80\x93 选项和产品

\n\n

如果这没有帮助,也许将大型 WAP 分成多个可以缩短编译时间。不幸的是,该策略要求您放弃卡西尼号上的开发。相反,您必须使用 IIS 作为主机:在一个解决方案中使用多个 Web 应用程序项目 (WAP)

\n