2013-08-28 1 views
2

변경 사항이 발견되거나 Visual Studio에서 App_Code 폴더가 감지되면 Visual Studio는 어떻게 처리합니까? IIS 또는 ASP.NET이 아닙니다.Visual Studio에서 App_Code 폴더를 특수하게 처리하는 방법은 무엇입니까?

웹 사이트 프로젝트의 큰 App_Code 폴더 안에 코드 파일을 저장할 때마다 Visual Studio가 왜 오랫동안 정지되는지 더 잘 이해하고 싶습니다. 다른 방법으로, 나는 물을 수있다. 왜 똑같은 크기의 클래스 라이브러리 안에있는 파일을 처리 할 때 Visual Studio가 똑같은 현상을 보이지 않는가?

Visual Studio에서 App_Code 폴더를 처리하는 문제와 관련하여 Microsoft에서 공식적으로 인용 한 문서를보고 싶습니다. 예를 들어 클래스 라이브러리 처리와 다른 점이 있습니다.

답변

5

App_Code 폴더에는 특정 프로그래밍 언어로 작성된 파일 이 명시 적으로 표시되어 있지 않습니다. 대신 ASP.NET은 에 포함 된 파일을 기반으로 App_Code 폴더를 호출 할 컴파일러를 으로 추측합니다. App_Code 폴더에 .vb 파일이 있으면 ASP.NET은 Visual Basic 컴파일러를 사용합니다. .cs 파일이 포함되어 있으면 ASP.NET은 C# 컴파일러 등을 사용합니다. 응용 프로그램 웹의 편집 요소에 설립으로

App_Code 폴더 그런 된 .wsdl 파일과 프로그램 언어가 모호 파일 만 포함 된 경우

는, ASP.NET은 웹 응용 프로그램의 기본 컴파일러를 사용합니다. 구성 파일 또는 컴퓨터 수준 Web.config 파일. 컴파일러는 빌드 공급자이며 빌드 공급자는 확장자요소로 각 파일 확장명에 대해 지정됩니다.

여기에서 documentation을 참조하십시오.

+1

이 유용한 답변입니다. 요약하면 App_Code 폴더는 작은 변경 사항에 따라 다양한 방식으로 동적으로 컴파일되므로 클래스 라이브러리와 같이 명시 적으로 컴파일 된 프로젝트와 비교할 때 성능 차이가 발생합니다. –

1

이 폴더의 모든 코드를 별도의 어셈블리로 다시 컴파일 한 다음이 어셈블리를 프로젝트에서 참조합니다.

프로젝트에 컴파일 가능한 파일을 포함 시키면 이중 참조가 발생할 수 있음을 알아야합니다. 후자의 경우 파일은 동시에 참조되는 임시 어셈블리가있는 별도의 어셈블리에서 컴파일되고 bin 폴더에서도 컴파일됩니다. 이합니다 ... App_Code 폴더에 대한

0

이러한 성능 노트 공포 쇼의 시작입니다 약간 일자하지만 가능성이 여전히 프로젝트 형식에 적용

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

관련 문제