我在VS2017中为我的WPF项目添加服务引用时遇到问题。服务本身是使用EntityFramework(EntityFrameworkDataService)的WCF数据服务。在我之前使用的VS2013中,我没有在向WPF项目添加服务时遇到任何问题。我上个月升级到VS2017,最近对WCF服务进行了一些更改,需要刷新我的WPF项目中的引用。我似乎无法刷新它,所以我删除了引用并开始尝试重新添加引用,现在我已经收到此错误消息:
无法添加指定的OData API,因为现在是OData API 仅支持连接服务。
有关详细信息,请参阅: https://aka.ms/odatavsclientguidance
提供的链接没有关于VS2017设置的任何信息。它建议使用' OData Connected Service'扩展,但该扩展不支持VS2017(尝试过它,但得到了一个"不兼容"消息)。我还找到了' VS WCF连接服务' VS2017的扩展,但它似乎不支持WPF项目(或者至少我无法弄清楚)。
是否有人因为向WPF项目添加WCF数据服务引用而遇到此问题?我还可以尝试其他任何建议吗?
答案 0 :(得分:5)
我通常通过DataSvcUtil.exe生成我的客户端,这是.net框架的一部分
e.g。
“%windir%\ Microsoft.NET \ Framework \ v4.0.30319 \ DataSvcUtil.exe”/ dataservicecollection /version:2.0 / language:CSharp /out:c:\temp\DataService.cs / uri:{{3} }
答案 1 :(得分:4)
正如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
OR 为Visual Basic执行类似的datasvcutil.exe命令:datasvcutil /language:VB /out:{{PATH_TO_PROJECT}}/{{SERVICE_NAME}}.VB /uri:{{URL_TO_SERVICE}}.svc
瞧,你已经完成了。