6

Dowolne klasy tworzone w /App_Code lub /App_Code/[subfolder] nie mają lokalnego komputera.Brak IntelliSense w App_Code, dla bibliotek DLL w projekcie WWW

To znaczy - Mam intellisense dla bibliotek systemowych, takich jak string. [Członek] itp. Ale nie można go uzyskać, aby rozpoznać żadnych klas lokalnych do App_Code (w tym siebie), lub bibliotek DLL odniesionych w folderze/bin.

Chociaż mam intellisense wewnątrz zakresu funkcji-członka. (Tj. Zmienne lokalne lub parametry funkcyjne)

NB

  • To Web Site projekt, a nie projekt Web Application.
  • Próbowałem zresetować wszystkie ustawienia Visual Studio i wyczyszczenie informacji intellisense znaleźć w AppData dla VS.
  • Pracuję z Visual Studio 2012 wer. 11.0.61030.00 Aktualizacja 4
  • Projekt korzysta z .NET 4.0
  • Jeśli przeniesię klasy poza folder App_code, zarejestrują się w intellisense doskonale.
  • Nie ma opcji, aby ustawić kompilację plików do kompilacji, ponieważ jest to projekt witryny sieci Web, a nie aplikacja internetowa.
+1

Czy te klasy znajdują się w przestrzeni nazw? – DeadlyChambers

+0

@DeadlyChambers, nie są, ale próbowałem dodać je do jednego, bez powodzenia. – Jono

Odpowiedz

2

IMO, powinieneś przenieść swój kod z App_Code. W .net 4.5 (i 4.0) twój tył kod jest kompilowany do biblioteki dll, więc nie widzę żadnych korzyści z umieszczenia twojego kodu w App_Code. Jeśli ktoś doradza inaczej, interesuje mnie słuch.

Po tym, stwórz folder lub foldery w projekcie głównym i umieść tam swój kod.

MyWebsite 
- DataLayer 
    MyDataLayer.cs 
Default.aspx 

W tym przykładzie, będzie można uzyskać dostęp do klas DataLayer.MyDataLayer

Nawet lepiej utworzyć nową bibliotekę dla kodu, który nie jest potrzebny w kodzie aspx.cs za plików.

+0

Śledź, dlaczego kod App_ jest tam w ogóle? – Jono

+0

Kod w kodzie App_code nie został skompilowany przed uruchomieniem. Będzie przechowywać kod źródłowy zamiast skompilowanego kodu. Ale jak powiedziałem, nie widzę korzyści. Miałem takie same problemy jak ty. Łatwiej było stworzyć folder i umieścić tam kod. Zobacz tutaj http://msdn.microsoft.com/en-us/library/t990ks23(v=vs.90).aspx – PhillyNJ

2

Nowe pliki kodu w App_Code będą miały działanie kompilacji "Treść", dlatego nie masz żadnych informacji. Kliknij prawym przyciskiem myszy plik kodu i kliknij "Właściwości", w oknie właściwości zmień "Build Action" na "Compile".

Następnie ponownie otwórz plik kodu.

+0

Używam Visual Studio 2012, który nie ma tej opcji w oknie właściwości. Czy wiesz, gdzie te właściwości pliku są zwykle przechowywane dla VS do odczytania? Może plik rozwiązania? – Jono

+0

Tak, jestem sry. W 2010 roku było to nadal możliwe. Właśnie przetestowałem to w 2013 r. I nie ma "Build Action" w oknie właściwości pliku klasy. – modiX