Xamarin.ios 无法使用SlSvcUtil.exe创建代理

Xamarin.ios 无法使用SlSvcUtil.exe创建代理,xamarin.ios,silverlight-3.0,Xamarin.ios,Silverlight 3.0,我试图按照教程为MonoTouch项目的WCF服务创建一个代理类,但是当我运行命令时 C:\Program Files\Microsoft SDK\Silverlight\v3.0\Tools\SlSvcUtil.exe/noConfig 我得到以下错误: 错误:无法加载文件或程序集“C:\Program Files(x86)\Microsoft Silverlight\5.0.61118.0\System.Runtime.Serialization.dll”或其依赖项之一。此程序集由比当前加载

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

C:\Program Files\Microsoft SDK\Silverlight\v3.0\Tools\SlSvcUtil.exe/noConfig

我得到以下错误:

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

在C:\Program Files(x86)\Microsoft SDK\Silverlight\v3.0\Libraries\Client下查找时,没有System.Runtime.Serialization.dll。也许这就是问题所在,它尝试使用最新的.net dll,但无法与Silverlight一起使用


有什么想法吗?

为什么不使用Visual Studio 2010创建一个新的Silverlight 3.0项目,然后以Visual Studio的方式添加该服务

然后,您可以获取生成的代码并将该代码导入MonoTouch

就命令行而言,我敢打赌它的功能如下:

slsvcutil/edb /命名空间:“*,SilverlightApplication1.ServiceReference1” /ct:System.Collections.ObjectModel.ObservableCollection`1 /r:“%PROGRAMFILES%\Reference Assembly\Microsoft\Framework\Silverlight\v3.0\System.Windows.dll”


至少命令行实用程序报告,当从VS.创建服务引用时,它会这样做。

为什么不使用Visual Studio 2010创建一个新的Silverlight 3.0项目,然后以Visual Studio的方式添加服务呢

然后,您可以获取生成的代码并将该代码导入MonoTouch

就命令行而言,我敢打赌它的功能如下:

slsvcutil/edb /命名空间:“*,SilverlightApplication1.ServiceReference1” /ct:System.Collections.ObjectModel.ObservableCollection`1 /r:“%PROGRAMFILES%\Reference Assembly\Microsoft\Framework\Silverlight\v3.0\System.Windows.dll”


至少命令行实用程序报告,当从VS.创建服务引用时,它会这样做。

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

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

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

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


BTW,System.Runtime.Serialization DLL在这里-%PROGRAMFILES%\Microsoft SDK\Silverlight\v3.0\Libraries\Client通过VS works添加,但它会生成带有配置的代理,我不能在MonoTouch.BTW中使用配置,JSON DLL就是我提到的地方。。常规配置在核心运行时的Silverlight文件夹(而不是SDK)中(我很惊讶MonoTouch没有附带此…@JonasStawski如果Mono WCF实现无法使用生成的*.config文件,则需要在代码中手动定义配置。Mono的WCF支持仍应被视为实验性的,您应该尽可能在移动设备上使用异步REST调用:-)另外,请记住MonoTouch只能使用BasicHttpBinding传输。@Anuj我们以编程方式创建端点,但问题与代理创建有关,System.Runtime.Serialization DLL在这里-%PROGRAMFILES%\Microsoft SDK\Silverlight\v3.0\Libraries\Client通过VS works添加它,但它会生成带有配置的代理,我不能在MonoTouch.BTW中使用配置,JSON DLL就是我提到的。。常规配置在核心运行时的Silverlight文件夹(而不是SDK)中(我很惊讶MonoTouch没有附带此…@JonasStawski如果Mono WCF实现无法使用生成的*.config文件,则需要在代码中手动定义配置。Mono的WCF支持仍应被视为实验性的,您应该尽可能在移动设备上使用异步REST调用:-)此外,请记住MonoTouch只能使用BasicHttpBinding传输。@Anuj我们正在通过编程创建端点,但问题与代理创建有关根据MT支持,安装Silverlight 5时可能会出现问题。我能够在另一台没有安装Silverlight 5的机器上创建代理。根据MT支持,安装Silverlight 5时可能会出现问题。在没有安装Silverlight 5的情况下,我能够在另一台机器上创建代理。