2012-06-20 173 views
7

從昨天開始使用Visual Studio 2012 RC,我們有一個WCF解決方案。每當我嘗試在另一個解決方案中使用「添加/刪除引用」對話框時,添加該服務後,我會收到以下錯誤。Visual Studio 2012錯誤Reference.svcmap丟失錯誤

Error 1 Reference.svcmap: Failed to generate code for the service reference 'DPService'. Cannot import wsdl:portType Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Error: Type 'WebSupergoo.ABCpdf8.Objects.Bookmark' is a recursive collection data contract which is not supported. Consider modifying the definition of collection 'WebSupergoo.ABCpdf8.Objects.Bookmark' to remove references to itself. XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IGQDynamicPackaging'] Cannot import wsdl:binding Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on. XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IGQDynamicPackaging'] XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] Cannot import wsdl:port Detail: There was an error importing a wsdl:binding that the wsdl:port is dependent on. XPath to wsdl:binding: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpContextBinding_IGQDynamicPackaging'] XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:service[@name='GQService']/wsdl:port[@name='WSHttpContextBinding_IGQDynamicPackaging'] App_WebReferences/DPService/

請注意:上述服務工作正常,當我使用VS 2010作爲參考,我們使用的是「重用類型的引用程序」打開和「在所有引用的程序重用類型」選項被選中。

相同的設置工作正常與VS 2010,我們可以添加參考。但現在,在安裝VS 2012 RC之後,我無法爲VS 2010和VS2012添加參考。任何解決方案或解決此問題。

我只想回滾並想要使用VS2010,「添加服務」現在在VS 2010中給出了相同的參考錯誤。

+0

我有同樣的問題,任何更新? –

+1

我正在卸載VS 2012,並將卸載.net 4.5,你有沒有試圖做到這一點?它有用嗎? –

+0

嗨MSS,我們還沒有嘗試卸載。卸載後你有任何成功嗎?感謝您對此的投入。 – amaz

回答

1

卸載vs 2012,vs 2010會給你「未知錯誤」,一個小錯誤信息,修復vs 2010(重新安裝它),它會好的!

+0

我不明白爲什麼卸載VS 2012,然後安裝Visual Studio 2010,然後重新安裝2012 –

+0

我通過我的意思的方式 –

+0

有同樣的問題:重新安裝VS 2010和VS沒有2012年的問題引起的VS 2010不工作!所以,我修好它卸載VS 2012 –

42

我有一個類似的問題,我取消選中「配置服務引用」對話框中的「引用程序集中的重用類型」複選框。

1)服務上右擊參考 2)選擇配置服務引用 3)取消選中「重用類型引用的程序集」

我不知道所有這樣做的後果的,但它讓我通過再次使用參考。

+2

在我們的例子中,我們需要使用「引用程序集」選項,因爲我們有分享wcf和web之間的類型的單獨的asssembly。值得注意的是,我們已經使用參考裝配完成了大量的編碼。改變他們所有返回引用生成的代理真的是噩夢 – amaz

+2

我試過這個解決方案,它沒有用! –

+2

分支是你不重用類型,它會爲每個模型對象生成一組新的類。很好,如果他們是pocos但是糟糕的話,如果你說客戶端和服務器之間共享驗證。奇怪的是,一個用戶安裝SP1,事情變得很有趣。這不知何故影響了我的機器......不重用重用,更新然後再重新打開,所有事情都再次發生。 –

4

看起來'CustomerServiceReference'已經在您的項目引用的兩個程序集中定義。代碼生成器不知道應該使用哪一個。

爲了擺脫這個問題,就像拉爾斯說的那樣。您可以配置服務引用,在其高級選項選項卡中,可以禁用「在所有引用的程序集中重用類型」(通過選擇「在指定的引用程序集中重用類型」)。您可以選擇除導致此問題的程序集之外的所有程序集(其定義CustomerServiceReference爲所述的錯誤消息)。