2013-12-09 52 views
10

我正在使用在VS 2012(Framework 4.5)窗體窗體中創建的Windows應用程序(C#)。這些要求要求它用於舊版本的Windows,因此我將目標框架設置爲.NET Framework 4,將平臺目標設置爲x86。一旦它的完成,我嘗試編譯我收到以下錯誤:自定義工具錯誤:無法生成文件

Custom tool error: Failed to generate file: The service reference is not valid for the current .NET Framework version or project type. You can change the service reference configuration in the .svcmap

我試着取消選中在服務引用盒子「Reuse types in referenced assemblies」翻轉到框架4,但沒有運氣了。

回答

17

顯然,有時這個錯誤可以通過簡單的re-adding the reference來避免。你嘗試過嗎?

+0

沒有,它的工作,謝謝! – Danno

14

除了重新添加引用,您還可以從Service References\<reference name>\Reference.svcmap文件中刪除.NET 4.0無法理解的代碼。請注意,您將需要通過資源管理器導航到此文件,但它不會在Visual Studio中顯示。對於自己的介紹人,我只是刪除了此行

<GenerateTaskBasedAsynchronousMethod>true</GenerateTaskBasedAsynchronousMethod> 

然後右鍵單擊在VS2013服務引用並點擊「更新服務引用」。它將重新掃描該服務並生成Reference.cs文件,以便它與.NET 4.0兼容。

+0

謝謝,我有服務無法刷新的情況,因爲它已被所有者脫機,唯一仍然可用的服務版本是使用HTTPS和雙向SSL握手的服務(我甚至沒有嘗試啓用Visual Studio從那裏拉取WSDL文件)。所以我手動編輯了.svcmap,但我也必須手動填充Reference.cs,因爲它被截斷(可能由VS),幸運的是我們有一個項目備份,所以我從那裏拿了Reference.cs,刪除了bin和obj目錄,重建所有,一切都再次運作。 –

+0

我認爲的第一件事是重新添加服務參考。我決定搜索,因爲我知道有一個更簡單的解決方案。謝謝! – Luty

相關問題