VS2017中WPF项目中的WCF数据服务参考
Posted
技术标签:
【中文标题】VS2017中WPF项目中的WCF数据服务参考【英文标题】:WCF Data Service reference in WPF Project in VS2017 【发布时间】:2017-08-31 10:30:33 【问题描述】:我在 VS2017 中向我的 WPF 项目添加服务引用时遇到问题。该服务本身是使用 EntityFramework (EntityFrameworkDataService) 的 WCF 数据服务。在我之前使用的 VS2013 中,向我的 WPF 项目添加服务没有任何问题。上个月升级到VS2017,最近对WCF服务做了一些改动,需要在我的WPF项目中刷新引用。我似乎无法让它刷新,所以我删除了引用并开始尝试重新添加引用,现在我收到了以下错误消息:
无法添加指定的 OData API,因为现在 OData API 仅支持连接服务。
更多信息,请参见: https://aka.ms/odatavsclientguidance
提供的链接没有关于 VS2017 设置的任何信息。它建议使用“OData Connected Service”扩展,但该扩展不支持 VS2017(尝试过但收到“不兼容”消息)。我还找到了 VS2017 的“VS WCF 连接服务”扩展,但它似乎不支持 WPF 项目(或者至少我无法弄清楚)。
是否有人在将 WCF 数据服务引用添加到 WPF 项目时遇到此问题?我可以尝试其他任何建议吗?
【问题讨论】:
您找到解决方案了吗?我也有同样的问题。 【参考方案1】:我通常通过 DataSvcUtil.exe 生成我的客户端,它是 .net 框架的一部分
例如
"%windir%\Microsoft.NET\Framework\v4.0.30319\DataSvcUtil.exe" /dataservicecollection /version:2.0 /language:CSharp /out:c:\temp\DataService.cs /uri:http://localhost:16584/DataService/
MSDN 文档: https://msdn.microsoft.com/en-us/library/ee383989(v=vs.110).aspx
【讨论】:
【参考方案2】:正如 TGRA 雄辩地指出的那样,在撰写本文时,VS2017 的最佳选择是使用 dataserviceutil.exe
。为了让我自己更简单,我做了以下事情:
在文件资源管理器中,使用如下路径导航到 datasvcutil.exe
:
%windir%\Microsoft.NET\YOUR_PROCESSOR_ARCHITECTURE\YOUR_FRAMEWORKVERSION
按住 shift
并单击鼠标右键。选择Open Commandwindow here
(如果您愿意,也可以选择命令提示符。
现在对 C# 执行类似这样的 datasvcutil.exe 命令:datasvcutil /language:Csharp /out:PATH_TO_PROJECT/SERVICE_NAME.cs /uri:URL_TO_SERVICE.svc
或执行一个 datasvcutil.exe 命令,就像 Visual Basic 的那样:datasvcutil /language:VB /out:PATH_TO_PROJECT/SERVICE_NAME.VB /uri:URL_TO_SERVICE.svc
瞧,你已经完成了。
【讨论】:
我把答案交给了 TGRA,因为它是相同的解决方案,也是第一个回答的问题。但感谢您提供更多详细信息。 生成此文件后如何/在哪里使用它?以上是关于VS2017中WPF项目中的WCF数据服务参考的主要内容,如果未能解决你的问题,请参考以下文章
无法将 Azure VM 上托管的 WCF 服务引用添加到 VS2015 项目
在 VS 2010 中更新 WCF 服务对 WebService 问题的引用