2013-08-27 71 views
2

我在.NET 2.0中有一個項目(我們稱之爲項目A)。我想使用WCF,所以我創建了另一個項目(在.NET 3.0中,我們稱之爲項目B),在這裏我放置了所有WCF邏輯,因此我在項目A中所做的全部工作都是從項目B的類中調用某個方法。添加引用項目B,項目A沒有看到它,我獲得警告:如何在.net 2.0項目中使用.net 3.0類?

主要參考「項目B/Some.dll」無法得到解決,因爲它的框架組件的間接依賴「系統.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = XXX「,這在當前目標框架中無法解決。 」 .NETFramework,版本= V2.0" 。

我該如何做這項工作?

回答

0

是的,這是完全可能的。您只需將在3.0中編寫的組件公開爲COM對象。 2.0宿主應用程序只是將它們用作COM對象,並不知​​道它們是本機,2.0,3.0還是其他。 COM是兩個運行時版本必須實現相同的通用接口。

0

要使用WCF(在運行時),無論如何都需要安裝.NET 3(或更好的3.5)。因此,將ProjectA更改爲目標3(或3.5)。

+1

已安裝。我無法將項目A升級到.NET 3.0(如果我可以在那裏不會有這個問題;)) –

+0

@PeteMorrison在一個問題上看到[修訂歷史](http://stackoverflow.com/posts/22246916/revisions)你已經提交了一個建議的編輯。 – 2014-03-07 10:39:27

0

您不能直接執行此操作,您的項目將針對不同版本的.NET。

你可以做的是在兩個進程之間進行通信。

使您的3.0項目成爲可執行文件,並允許它接受調用您想要使用的方法的命令行參數。

在您的2.0項目中,使用正確的命令行參數產生您的3.0項目作爲新的Process。如有必要,寫入您的3.0項目的StandardOutput並從您的2.0項目中讀取它。

相關問題