2

当在 App_Code 文件夹中进行或检测到更改时,Visual Studio 如何处理它?不是 IIS 或 ASP.NET。

我想更好地理解为什么每当我将代码文件保存在网站项目的大型 App_Code 文件夹中时,Visual Studio 会长时间冻结。或者,我可以问:为什么在处理同样大的类库中的文件时,Visual Studio 不会出现这些相同的冻结?

理想情况下,我希望看到 Microsoft 引用的有关在 Visual Studio 中处理 App_Code 文件夹的问题的官方文档,以及与处理类库不同的情况。

4

3 回答 3

7

App_Code 文件夹未明确标记为包含以任何一种编程语言编写的文件。相反,ASP.NET 根据 App_Code 文件夹包含的文件推断要为 App_Code 文件夹调用哪个编译器。如果 App_Code 文件夹包含 .vb 文件,则 ASP.NET 使用 Visual Basic 编译器;如果它包含 .cs 文件,则 ASP.NET 使用 C# 编译器,依此类推。

如果 App_Code 文件夹仅包含编程语言不明确的文件,例如 .wsdl 文件,则 ASP.NET 使用 Web 应用程序的默认编译器,如应用程序 Web.config 文件或机器级的编译元素中建立的那样Web.config 文件。编译器被命名为构建提供者,并且为扩展 元素中的每个文件扩展名指定一个构建提供者。

请参阅此处的文档

于 2013-09-01T16:30:20.103 回答
1

它在一个单独的程序集中重新编译此文件夹中的所有代码,然后在您的项目中引用此程序集。

您应该知道,如果您将这些文件作为可编译文件包含在您的项目中,则可能会发生双重引用。在后一种情况下,文件同时在一个单独的程序集(具有临时名称)中编译,该程序集被引用,并且也在 bin 文件夹中编译。这是恐怖表演的开始......

于 2013-09-05T18:38:03.170 回答
0

这些关于 App_Code 文件夹的性能说明有些过时,但可能仍适用于项目类型:

2) 保持 /app_code 目录中的文件数量较少。如果你最终在这个目录中有很多类文件,我建议你将一个单独的类库项目添加到你的 VS 解决方案中并在其中移动这些类,因为类库项目的编译速度比在 /app_code 中编译类快目录。如果您在 /app_code 中只有少量文件,这通常不是问题,但如果您有很多目录或几十个文件,您将能够通过将这些文件移动到单独的类库项目中来提高速度,并且然后从您的网站引用该项目。要注意的另一件事是,每当您在 VS HTML 设计器中从源代码切换到设计视图时,设计器导致 /app_code 目录在设计器表面加载之前被编译。这样做的原因是您可以在设计器的 /app_code 中托管定义的控件。如果您没有 /app_code 目录,或者只在其中定义了几个文件,页面设计器将能够更快地加载(因为它不需要先执行大编译)。

-- http://weblogs.asp.net/scottgu/archive/2006/09/22/Tip_2F00_Trick_3A00_-Optimizing-ASP.NET-2.0-Web-Project-Build-Performance-with-VS-2005.aspx

于 2013-09-05T23:05:56.043 回答