VS2017中WPF项目中的WCF数据服务参考

时间:2017-04-05 17:05:36

标签: wpf wcf odata wcf-data-services visual-studio-2017

我在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数据服务引用而遇到此问题?我还可以尝试其他任何建议吗?

2 个答案:

答案 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} }

MSDN文档: http://localhost:16584/DataService/

答案 1 :(得分:4)

正如TGRA如此雄辩地指出,VS2017在撰写本文时最好的选择是使用dataserviceutil.exe。为了让自己更简单,我会做以下事情:

  1. 在文件资源管理器中,使用以下路径导航至datasvcutil.exe%windir%\Microsoft.NET\{{YOUR_PROCESSOR_ARCHITECTURE}}\{{YOUR_FRAMEWORKVERSION}}

  2. 按住shift并右键单击。如果您愿意,请选择Open Commandwindow here(或命令提示符。

  3. 现在为C#执行类似的datasvcutil.exe命令:datasvcutil /language:Csharp /out:{{PATH_TO_PROJECT}}/{{SERVICE_NAME}}.cs /uri:{{URL_TO_SERVICE}}.svc

  4. OR 为Visual Basic执行类似的datasvcutil.exe命令:datasvcutil /language:VB /out:{{PATH_TO_PROJECT}}/{{SERVICE_NAME}}.VB /uri:{{URL_TO_SERVICE}}.svc

  5. 瞧,你已经完成了。