我试图按照这教程为MonoTouch项目创建一个WCF服务的代理类,但是当我运行命令时
C:\Program \Microsoft SDKs\Silverlight\v3.0\Tools\SlSvcUtil.exe /noConfig http://yourdomain/yourservice/wsdl
我得到以下错误:
错误:无法加载文件或程序集‘C:\程序文件(x86)\Microsoft x86或其依赖项之一。此程序集是由比当前加载的运行时更新的运行时生成的,无法加载。
查看C:\Program (x86)\Microsoft \Silverlight\v3.0\库\Client没有System.Runtime.Serialization.dll。也许这就是问题所在,它尝试使用最新的.net dll,它不能与Silverlight一起工作。
有什么想法吗?
发布于 2012-05-21 20:37:00
当在同一台计算机上安装多个SDK (WP7.1、WP7.1.1、Silverlight 3、4或5)时,这似乎是一个问题。解决方案将告诉SlSvcUtil使用正确的程序集和.net版本,方法是将SlSvcUtil.exe.config文件添加到SlSvcUtil所在的文件夹中,在我的示例中是%PROGRAMFILES(x86)%\Microsoft \Silverlight\v3.0\Tools:
<?xml version ="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>发布于 2012-03-06 16:14:14
为什么不使用Visual 2010创建一个新的Silverlight 3.0项目,然后以Visual的方式添加服务。
然后您可以获取生成的代码并将该代码导入MonoTouch。
就命令行而言,我敢打赌它会做这样的事情:
slsvcutil http://yourdomain.com/yourservice/wsdl /edb /namespace:"*,SilverlightApplication1.ServiceReference1“http://yourdomain.com/yourservice/wsdl /r:"%PROGRAMFILES%\Reference Assemblies\Microsoft\Framework\Silverlight\v3.0\System.Windows.dll”“
至少命令行实用程序报告了它在从VS创建服务引用时所做的工作。
https://stackoverflow.com/questions/9587040
复制相似问题