无法使用SlSvcUtil.exe创建代理

时间:2012-03-06 15:48:04

标签: xamarin.ios silverlight-3.0

我正在尝试按照this教程为MonoTouch项目的WCF服务创建代理类,但是当我运行命令时

  

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

我收到以下错误:

  

错误:无法加载文件或程序集“C:\ Program Files(x86)\ Microsoft Silverlight \ 5.0.61118.0 \ System.Runtime.Serialization.dll”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。

查看C:\ Program Files(x86)\ Microsoft SDKs \ Silverlight \ v3.0 \ Libraries \ Client没有System.Runtime.Serialization.dll。也许这就是问题,它试图使用最新的.net dll,这对Silverlight不起作用。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

当在同一台计算机上安装多个SDK(WP7.1,WP7.1.1,Silverlight 3,4或5)时,这似乎是一个问题。 solution是告诉SlSvcUtil使用正确的程序集和.net版本,方法是将SlSvcUtil.exe.config文件添加到SlSvcUtil所在的同一文件夹中,在我的例子中是%PROGRAMFILES(x86)%\ Microsoft SDKs \ Silverlight的\ 3.0 \工具:

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

答案 1 :(得分:1)

为什么不用Visual Studio 2010创建一个新的Silverlight 3.0项目,然后用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创建服务引用时的操作。