6

/App_Code 또는 /App_Code/[subfolder]에 생성하는 모든 클래스에는 로컬 인텔리 센스가 없습니다.웹 사이트 프로젝트의 bin dll에 대한 App_Code에 Intellisense가 누락되었습니다.

즉, 문자열과 같은 시스템 DLL에 대해 인텔리 센스가 있습니다. 그러나 App_Code (자체 포함)에 로컬 인 모든 클래스 또는/bin 폴더에서 참조되는 DLL을 인식 할 수는 없습니다.

회원 기능의 범위 내에서 인텔리 센스가 있지만. (예. 지역 변수 또는 함수 매개 변수)

NB

  • 이것은 웹 사이트 프로젝트가 아닌 웹 응용 프로그램 프로젝트입니다.
  • 모든 Visual Studio 설정을 다시 설정하고 AppData에서 VS에 대한 Intellisense 정보를 지우려고했습니다.
  • Visual Studio 2012 버전으로 작업하고 있습니다. 11.0.61030.00 업데이트 4
  • 프로젝트에서 .NET 4.0을 사용 중입니다.
  • 클래스를 App_code 폴더 외부로 이동하면 Intellisense로 완벽하게 등록됩니다.
  • 웹 응용 프로그램이 아닌 웹 사이트 프로젝트이므로 파일의 빌드 설정을 컴파일로 설정하는 옵션이 없습니다.
+1

이러한 클래스는 네임 스페이스에 있습니까? – DeadlyChambers

+0

@DeadlyChambers, 그들은 성공하지 못했지만 하나에 추가하려고 시도했습니다. – Jono

답변

2

IMO의 경우 코드를 App_Code 밖으로 옮겨야합니다. .net 4.5 (및 4.0)에서는 배후 코드가 dll로 컴파일되므로 코드를 넣는 데 어떤 이점도 보이지 않습니다. App_Code. 누군가 다른 조언을하면, 나는 듣는 데 흥미 롭습니다.

이렇게 말하면 루트 프로젝트 아래에 폴더를 만들고 코드를 입력하십시오. 이 예에서

MyWebsite 
- DataLayer 
    MyDataLayer.cs 
Default.aspx 

, 당신은 더 나은 수업

DataLayer.MyDataLayer 액세스 파일 뒤에 aspx.cs 코드에서 필요하지 않은 코드에 대한 새로운 라이브러리를 만들 수있을 것입니다.

+0

그 다음에, 왜 App_code가 거기에 있습니까? – Jono

+0

App_code의 코드는 런타임까지 컴파일되지 않습니다. 컴파일 된 코드 대신 소스 코드를 저장합니다. 그러나 내가 말했듯이, 나는 이익을 얻지 못한다. 나는 너와 같은 문제가 있었다. 폴더를 만들고 거기에 코드를 삽입하는 것이 더 쉬웠습니다. http://msdn.microsoft.com/en-us/library/t990ks23(v=vs.90).aspx – PhillyNJ

2

App_Code의 새 코드 파일에는 빌드 액션 "콘텐츠"가 있으므로 인텔리 센스가 없습니다. 코드 파일을 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭하고 속성 창에서 "빌드 동작"을 "컴파일"로 변경하십시오.

그런 다음 코드 파일을 다시여십시오.

+0

Visual Studio 2012를 사용하고 있는데,이 옵션은 속성 창에 없습니다. VS에서 읽을 수 있도록 이러한 파일 별 속성이 일반적으로 저장되는 위치를 알고 있습니까? 해결책 파일이 어쩌면? – Jono

+0

네, 슬프다. 2010 년에도 여전히 가능했습니다. 방금 2013 년에 테스트했는데 클래스 파일의 속성 창 안에는 "Build Action"이 없습니다. – modiX