2012-03-06 61 views
2

我試圖按照this教程創建一個代理類的MonoTouch的項目我的WCF服務,但是當我運行命令無法創建一個代理與SlSvcUtil.exe

C:\Program Files\Microsoft SDKs\Silverlight\v3.0\Tools\SlSvcUtil.exe /noConfig http://yourdomain/yourservice/wsdl

我得到以下錯誤:

Error: Could not load file or assembly 'C:\Program Files (x86)\Microsoft Silverlight\5.0.61118.0\System.Runtime.Serialization.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

在C展望:\程序文件(x86)\微軟的SDK \ Silverlight的\ 3.0 \圖書館\客戶端不具有System.Runtime.Serialization.dll。也許這就是問題所在,它會嘗試使用最新的.net dll,它不適用於Silverlight。

任何想法?

+0

根據MT支持,Silverlight 5安裝時可能會出現問題。我能夠在沒有安裝Silverlight 5的另一臺機器上創建代理。 – 2012-03-14 15:12:55

回答

3

在同一臺機器上安裝多個SDK(WP7.1,WP7.1.1,Silverlight 3,4或5)時,這似乎是一個問題。 solution是通過將SlSvcUtil.exe.config文件添加到SlSvcUtil所在的同一文件夾(在我的例子中爲%PROGRAMFILES(x86)%\ Microsoft SDKs \ Silverlight \ v3)來使SlSvcUtil使用正確的程序集和.net版本.0 \ Tools:

<?xml version ="1.0"?> 
<configuration> 
<startup> 
    <supportedRuntime version="v4.0"/> 
    <supportedRuntime version="v2.0.50727"/> 
</startup> 
</configuration> 
+0

這已通過http://support.microsoft.com/kb/2694961進行驗證 – 2013-08-09 14:47:02

1

爲什麼不創建一個新的Silverlight 3.0項目與Visual Studio 2010,然後添加服務Visual Studio的方式..

然後你就可以抓住生成的代碼,導入代碼到MonoTouch的..

至於命令行雲,我敢打賭,它確實是這樣的:

slsvcutil http://yourdomain.com/yourservice/wsdl/EDB /namespace:"*,SilverlightApplication1.ServiceReference1" /ct:System.Collections.ObjectModel.ObservableCollection`1 /r:「%PROGRAMFILES%\ Reference Assemblies \ Microsoft \ Framework \ Silverlight \ v3.0 \ System.Windows.dll」

至少命令行實用程序報告這是它從創建服務引用時VS.

+0

順便說一句,System.Runtime.Serialization DLLS在這裏 - %PROGRAMFILES%\ Microsoft SDKs \ Silverlight \ v3.0 \ Libraries \ Client – DevTheo 2012-03-06 16:16:25

+0

通過VS添加它的工作,但它生成代理與心中的配置,我不能在MonoTouch中使用配置。 – 2012-03-06 16:35:07

+0

順便說一句,JSON DLL是我提到的地方..常規的是在Silverlight文件夾(不是SDK)的核心運行時(我很驚訝,MonoTouch不會與此...) – DevTheo 2012-03-06 16:47:10