Silverlight Web 服务更新无法导入 wsdl

Silverlight web service update fails to import wsdl

几天来我们一直在与一个奇怪的问题作斗争。已在网上搜索答案,但 none 似乎解决了错误。

我们的场景是:我们的组织有一个 Silverlight 5 应用程序,它是在 VS 2010 中开发的,并且一切正常。它实际上在我们的生产服务器中 运行。
最近我们将开发机器迁移到 VS 2015,以及机器本身(部门的新机器)。 OS 是 Windows 7,和以前一样。

起初,由于 MS 框架,我们遇到了那个令人讨厌的 错误。最终 MS 发布了涵盖此问题的 4.6.2 预览版。

好的。所以回到实施请求的更改,我们在我们的网络服务中创建了一个新方法,并且它符合要求。我们确实有 [OperationContract][DataContract] 标签。发布并回答了一个问题,理由是这些标签丢失了。
但是,当我们转到 SL 应用程序并更新 WS 参考时,我们得到这个 "Custom tool error: Failed to generate code for the service reference ..."
自定义工具警告消息包括
"Cannot import wsdl:binding..."
"Cannot import wsdl:port..."
"Cannot import wsdl:portType..."
"No endpoints compatible with Silverlight 5 were found. The generated client class will not be usable unless endpoint information is provided via the constructor."

我们很困惑,因为当时我们认为我们可能做错了什么,所以我们回滚了更改,并更新了没有更改的服务引用,但我们得到了同样的错误。 Referece.cs 文件生成时没有代码,所有对 webservice 的引用都不再被编译器识别。

我们还阅读了一些提供取消选中 "Reuse types in referenced assemblies" 解决方案的帖子。这样做会清除这些错误,只会产生其他错误,因为我们的应用程序是在此前提下构建的。
我们还尝试删除服务引用并再次添加回来,但无济于事。

最终我们将 SL 应用程序还原到它正在编译的点,即在更新 webservice 引用之前,重新发布 WS 使用新方法,并手动将新方法添加到 Reference.cs 文件中,测试它和它的工作原理。

然而,这不应该是解决方案。这很麻烦,而且容易出错。 如果您能帮助解决这个问题,或者了解为什么会发生这种情况,我们将不胜感激。

谢谢

整个问题是,出于某种原因我还没有找到,VS 无法为 Reference.cs.

生成代码

作为一种变通方法,我们通过使用 SlSvcUtil.exe 工具成功生成了 Reference.cs 文件,该工具位于(在我的机器上)"c:\Program Files (x86)\Microsoft SDKs\Silverlight\v5.0\Tools".

为了获得与迁移前生成的代码相同的代码,我使用了以下命令和选项:

SlSvcUtil.exe my_ws_address /namespace:"*,my_class_namespace" /ct: System.Collections.ObjectModel.ObservableCollection`1 /r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v5.0\System.Windows.dll" /edb /ser:Auto

我没有使用 /out 开关,而是 运行 我想要的输出目录上的命令。但是您可能想在 运行 命令之前查看该开关。