Mam problem, który jest bardzo podobny do tego pytania: ASP.NET 3.5 Web Site stopped importing System namespace by defaultASP.NET 3.5 Website brakujących nazw w VS 2012
Mam ASP.NET 3.5 WWW (nie aplikacji) projekt w VB.NET, który kompiluje dobrze Visual Studio 2008. Kiedy otwieram projekt w Visual Studio 2012 (lub 2010), dostaję bardzo dziwne błędy, które sprawiają, że wygląda tak, jakby brakowało przestrzeni nazw System i System.Data. W większości przypadków wszystkie te błędy występują w folderze App_Code. W niektórych przypadkach mogę dodać system importu do klasy i go naprawić. Spodziewam się, ta strona kompilacji jak tylko otworzył ją w VS 2012.
Oto próbkowania błędów Dostaję:
CommandType
nie jest zadeklarowana. Może być niedostępny ze względu na poziom ochrony.DateTime
nie jest zadeklarowany. Może być niedostępny ze względu na poziom ochrony.HttpContext
nie jest zadeklarowany. Może być niedostępny ze względu na poziom ochrony .
Wierzę, że VB.NET wykonuje import niejawny, ale wydaje mi się, że ich brakuje.
Edytuj: Witryna działa poprawnie w usługach IIS i nie generuje żadnych błędów kompilacji.
Znacznik kompilacja mojego pliku web.config wygląda następująco:
<compilation defaultLanguage="vb" debug="true" batch="false">
<assemblies>
<add assembly="System.Runtime.Serialization.Formatters.Soap, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Entity.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
<buildProviders>
<add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider"/>
</buildProviders>
</compilation>
Próbowałem dodać System i System.Data, ale to nie pomogło. Powinien to być ciągnięcie z domyślnych zestawów z pliku web.config w C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG. Jak powiedziałem wcześniej, to samo rozwiązanie (choć jest to projekt witryny internetowej) buduje w VS 2008.
Edit:
mam zawężony to w dół do kilku bibliotek DLL w moim folderze BIN, które indywidualnie są przyczyną tego błąd (jeśli dodaję jedną z nich ponownie, błędy pojawią się ponownie). Jedną z kłopotliwych bibliotek DLL jest Recaptcha.dll. Nie ma nic szczególnego w tej bibliotece DLL i działa dobrze w VS2008 i ładuje się dobrze w IIS.
VS2012 początkowo pracował dla mojego projektu VS2010 MVC, a następnie całkowicie pomieszał kilka moich plików. Przeszukałem go i pojawiły się błędy, które nie zostały jeszcze naprawione. Nie polecam go używać. – user1477388
Zmień nazwę folderu app_code na coś innego. VS 2010 i VS2012 nie lubią już mieć kodu użytkownika w tym folderze. – AaronS
Nie miałem problemów z App_Code w 2010 roku, ale był to projekt strony. Otrzymałem tylko te błędy, o których wspomniałeś, gdy próbowałem uaktualnić do projektu aplikacji sieci Web. – ps2goat