VS2017中WPF项目中的WCF数据服务引用
WCF Data Service reference in WPF Project in VS2017
我在 VS2017 中向我的 WPF 项目添加服务引用时遇到问题。该服务本身是一个使用 EntityFramework (EntityFrameworkDataService) 的 WCF 数据服务。在我之前使用的 VS2013 中,向我的 WPF 项目添加服务没有任何问题。上个月升级到VS2017,最近对WCF服务做了一些改动,需要刷新我WPF项目中的引用。我似乎无法刷新它,所以我删除了引用并开始尝试重新添加引用,现在我收到了这条错误消息:
The specified OData API cannot be added because OData APIs are now
only supported with Connected Services.
For more information, please see:
https://aka.ms/odatavsclientguidance
提供的 link 没有任何关于 VS2017 设置的信息。它建议使用 'OData Connected Service' 扩展,但该扩展不支持 VS2017(尝试过但收到 "not compatible" 消息)。我还找到了 VS2017 的 'VS WCF Connected Service' 扩展,但它似乎不支持 WPF 项目(或者至少我无法弄清楚)。
有没有人运行解决过这个问题,将 WCF 数据服务引用添加到 WPF 项目?还有其他我可以尝试的建议吗?
我通常通过 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
正如 TGRA 雄辩地指出的那样,在撰写本文时,VS2017 的最佳选择是使用 dataserviceutil.exe
。为了让我自己更简单,我做了以下事情:
在文件资源管理器中,使用如下路径导航至 datasvcutil.exe
:
%windir%\Microsoft.NET\{{YOUR_PROCESSOR_ARCHITECTURE}}\{{YOUR_FRAMEWORKVERSION}}
按住 shift
并单击鼠标右键。 Select 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
瞧,大功告成。
我在 VS2017 中向我的 WPF 项目添加服务引用时遇到问题。该服务本身是一个使用 EntityFramework (EntityFrameworkDataService) 的 WCF 数据服务。在我之前使用的 VS2013 中,向我的 WPF 项目添加服务没有任何问题。上个月升级到VS2017,最近对WCF服务做了一些改动,需要刷新我WPF项目中的引用。我似乎无法刷新它,所以我删除了引用并开始尝试重新添加引用,现在我收到了这条错误消息:
The specified OData API cannot be added because OData APIs are now only supported with Connected Services.
For more information, please see: https://aka.ms/odatavsclientguidance
提供的 link 没有任何关于 VS2017 设置的信息。它建议使用 'OData Connected Service' 扩展,但该扩展不支持 VS2017(尝试过但收到 "not compatible" 消息)。我还找到了 VS2017 的 'VS WCF Connected Service' 扩展,但它似乎不支持 WPF 项目(或者至少我无法弄清楚)。
有没有人运行解决过这个问题,将 WCF 数据服务引用添加到 WPF 项目?还有其他我可以尝试的建议吗?
我通常通过 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
正如 TGRA 雄辩地指出的那样,在撰写本文时,VS2017 的最佳选择是使用 dataserviceutil.exe
。为了让我自己更简单,我做了以下事情:
在文件资源管理器中,使用如下路径导航至
datasvcutil.exe
:%windir%\Microsoft.NET\{{YOUR_PROCESSOR_ARCHITECTURE}}\{{YOUR_FRAMEWORKVERSION}}
按住
shift
并单击鼠标右键。 SelectOpen 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
瞧,大功告成。