2010-06-14 37 views
1

我正在編寫一個WPF客戶端,該客戶端使用ASP Web服務(VS2010,.net 4.0)。直到昨天,我突然得到上面的編譯器錯誤纔開始工作。在錯誤雙擊需要我Reference.cs和亮點只是線沿線的東西:編譯錯誤:'名稱空間'MyAppNamespace.System'中不存在類型或命名空間名稱'Runtime'(缺少程序集引用嗎?)'

[System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue =假,令= 2)]

(該'運行時'對象突出顯示爲不在MyAppNameSpace中)。

我試着用google搜索並重新添加服務引用並重新添加組合引用,但沒有任何作品,我完全卡住了。 Reference.cs是自動生成的,我對VS2010還是比較新的,所以我不確定該怎麼做。

希望這裏有人能指點我正確的方向......?

+0

好吧,我開始看到這個問題 - 看起來VS已經走了香蕉。如果我輸入'System。',intellisense會提示一箇舊的(現在不存在的)文件夾,而不是.net系統程序集。難怪它很困惑。 任何想法如何強制VS重建類型庫(或任何它在.net中調用)? – Philip 2010-06-14 13:57:45

回答

0

那麼,爲了以後任何人都在尋找答案 - 我放棄了嘗試修復它,並將項目文件的備份複製到現有的項目文件上,並且在手動修改之後引入了更改。這解決了腐敗的參考問題。

0

你的問題是,你已經定義了一個「系統」命名空間的某處,編譯器和智能感知在真正的「系統」之前找到的。解決方案是刪除有問題的名稱空間,然後清理並重建項目。

+0

最初這是我的想法......但項目中沒有這樣的命名空間,所以我不明白引用來自哪裏(我一直沒有改變命名空間或任何東西)。最後,我通過從備份中重新複製舊項目.sln和proj文件來修復它,這意味着現有的項目發生了一些不好的事情。 – Philip 2010-06-16 10:52:32

+0

如果你仍然有損壞的proj文件,你可能會在他們和你從備份中恢復的文件之間進行區別。這應該很容易看出改變了什麼。我想知道,我相信別人也會。 – 2010-06-16 15:09:22

0

我有一個類似的問題,但有不同的解決方案。

我的項目曾被稱爲「JobRunner」,但它改爲「NGB.JobRunner」。然而,在項目設置中,默認名稱空間和程序集名稱仍然是「JobRunner」,並且正在使用此名稱空間生成Reference.cs文件。

我不知道爲什麼它會導致問題,但是當我修復默認項目名稱空間和程序集名稱,並重新添加服務引用時,問題就解決了!

3

我有同樣的問題。經過幾小時的努力解決它,我意識到我在我的圖書館裏有一個叫做系統的課程。什麼公雞。

1

我與VB項目有同樣的問題,只有我沒有舊的代碼,因爲它是一個新的服務參考。我沒有名稱中帶有System的任何其他名稱空間。對我來說,解決辦法是進行以下系列更新換代:

VB 在Reference.vb

  1. 什麼也沒有更換System.
  2. 然後用"System.Runtime.Serialization"
  3. 取代"Runtime.Serialization"最後將其替換<Global.ComponentModel<ComponentModel

C# 參考。CS(我沒有嘗試這一點,但期望它會工作)

  1. 更換System.沒事
  2. 然後用"System.Runtime.Serialization"
  3. 取代"Runtime.Serialization"最後用[ComponentModel

另外一個細節,更換[Global.ComponentModel可能會導致某人的根本原​​因是服務wsdl來自舊式asp.net web服務(.asmx),這裏:https://api.mindbodyonline.com/0_5/ClassService.asmx?wsdl

更新 我後來發現,將目標框架更改爲4.5.1解決了我的編譯問題。另外我的根本原因是我的web項目和包含我的服務引用的類庫有不同的框架版本。一旦我將它們全部更改爲4.5.1,一切都很開心,不需要更改Reference.vb。

相關問題