2010-05-07 139 views
16

在VS2010中,Silverlight 4,.NET 4,我有一個WCF服務和一個Silverlight應用程序,並且Silverlight正在訪問該類,而不是使用添加服務引用但通過分享合同。當然,這意味着我在Silverlight類庫中擁有合同,並且該服務具有對該庫的項目引用。VS2010:從.NET項目添加項目引用到Silverlight項目的警告

奇怪的是,這導致在參考/ \圖標,併發出警告:

項目「SilverlightClassLibrary1」不能被引用。引用的項目是針對不同的框架系列(Silverlight)

但是,引用工作正常(我可以使用我的Silverlight應用程序中的接口)並且很好。

這是一個錯誤?我的猜測是肯定的,因爲如果你添加一個程序集引用而不是項目引用,這個警告就在說謊並且消失。我提交了bug,還有更多信息here

+0

請注意,它只是一個*警告*。我見過類似的 - 實際上,這就是爲什麼我沒有在「SerializerGenerator」圖片中擴展「引用」,這裏是http://marcgravell.blogspot.com/2010/04/walkthrough-protobuf-net-on -phone-7.html(「MyDto」項目與您的Silverlight一樣)。好問題,但。好的地方重新項目/ DLL參考之間的區別。我會給我一個去做我正在做的事情;-p – 2010-05-07 23:19:30

+0

有趣。它是否抱怨,而不是通過鏈接文件而不是添加一個DLL引用來將合同包含到Silverlight DLL中? – Doobi 2010-05-08 14:51:41

+0

不,它沒有抱怨,因爲你真的將代碼複製到另一個程序集中。 – nlawalker 2010-05-26 22:55:33

回答

15

微軟迴應了我發佈的bug。警告旨在存在,並且意在作爲警告而不是錯誤,儘管我會認爲案文不好。原因在於引用Silverlight項目會導致運行時失敗如果 Silverlight未在計算機上正確安裝。目前沒有辦法壓制警告。

+2

我有點困惑 - 這是否意味着Silverlight必須安裝在託管我的wcf服務的服務器上?感謝您提供有用的信息 – tomfumb 2011-08-10 23:59:52

+1

Hm,該URL不再有效。你有沒有記住它的名字,所以我可以嘗試再次找到它?我嘗試搜索[「被引用的項目針對不同的框架系列(Silverlight)」](https://connect.microsoft.com/SearchResultsLive.aspx?SearchQuery=different%2bframework%2bfamily%2b(Silverlight))微軟連接,但沒有彈出。 – 2012-10-22 13:13:14

3

如果您希望警告消失,您可以使用「添加引用」 - >「瀏覽」直接添加dll,而不是通過「添加引用」 - >「項目」添加項目。

這對我們來說也是一個非常討厭的問題,而這是我們發現的唯一解決方法。

+0

這不是一個好的解決方案,因爲它不涉及發佈vs調試版本。構建在錯誤類型上的乾淨工作區將失敗,因爲除非靜態檢查DLL到您的源代碼控制中,或者將調試/發佈的輸出目錄設置爲該項目相關性的同一文件夾,否則DLL將不存在。即使那時特別是對於多線程構建,解決方案將會遺漏構建項目依賴項以計算項目的正確構建順序。 – Shiv 2017-08-06 22:06:52