2013-06-20 71 views
7

我有一個問題,這是非常類似這樣的問題: ASP.NET 3.5 Web Site stopped importing System namespace by defaultASP.NET 3.5網站在VS缺少命名空間2012

我有一個ASP.NET 3.5網站(不應用程序)項目在VB.NET,編譯好的Visual Studio 2008.當我在Visual Studio 2012(或2010)中打開該項目時,出現一些非常奇怪的錯誤,使得它看起來好像缺少System和System.Data命名空間。在大多數情況下,所有這些錯誤都發生在App_Code文件夾中。在某些情況下,我可以將一個Imports系統添加到該類中並修復它。我希望這個網站,只要我在2012年VS

打開它編譯下面是我收到錯誤的採樣:

  • CommandType未聲明。由於其保護級別,它可能無法訪問。
  • DateTime未被聲明。由於其保護級別,它可能無法訪問。
  • HttpContext未被聲明。由於其保護級別不高,因此可能無法訪問。

我相信VB.NET確實做了一些隱式導入,但似乎我錯過了它們。

編輯:該網站在IIS中運行良好,不會產生任何編譯錯誤。

我的web.config文件的編譯標記的樣子:

<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> 

我已嘗試添加System和System.Data但它並沒有幫助。它應該從C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG中的web.config文件的默認程序集中提取。正如我之前說的,這同一個解決方案(即使它是一個網站項目)建立在VS 2008

編輯:

我已經縮小下來到我的BIN文件夾中的幾個DLL文件,其中每個單獨導致此錯誤(如果我添加其中一個,錯誤再次出現)。其中一個問題DLL是Recaptcha.dll。沒有什麼特別的關於這個DLL,它在VS2008中正常工作,並在IIS中加載正常。

+0

VS2012首先爲我的VS2010 MVC項目工作,然後完全搞砸了一堆我的文件。我搜索了它,並且還有一些當時尚未修復的錯誤。我不推薦使用它。 – user1477388

+0

將您的app_code文件夾重命名爲其他內容。 VS 2010和VS2012不再喜歡在該文件夾中擁有用戶代碼。 – AaronS

+0

我在2010年沒有與App_Code有關的問題,但那是一個網站項目。我只收到您在嘗試升級到Web應用程序項目時提到的錯誤。 – ps2goat

回答

0

你有沒有在你的網站項目中的web服務的參考?當對web服務的引用包含來自web服務的所有類型時,我遇到了問題。這是因爲複選框'引用程序集中的重用類型'在服務引用設置中被選中。

+0

我認爲這可能是問題,但事實並非如此。我將嘗試開始一個新項目,看看我是否可以複製。 – Jonathan

0

我在asp.net MVC中發現了一個與我的視圖非常類似的問題。在我的情況下,我無意中複製了配置文件中的一個部分。我認爲這是導致Visual Studio所有方式混亂的部分 - 編譯工作正常,但我收到了錯誤列表中的不尋常的錯誤。可能是類似的東西?檢查您的web.config和您的意見web.config文件的任何重複部分?

0

我有這個問題多次。總是會發現我們在我們的應用程序代碼(類對象)中犯了一些IDE不喜歡的錯誤,但是編譯器會編譯並運行而不會出錯。很多時候這是我們做的一個方法簽名一樣:

Public Sub Foo (byval Parm1 as long, _ 
     byval Parm2 as long, 
     byval Parm3 as long) 

而且我們忘記了一個「_」像我上面的例子有Parm2。

他們可能是一個真正的痛苦跟蹤。

相關問題