wcf - 是否可以将 Windows 8.1 应用升级到 UWP Windows 10 应用并在 UWP 应用中拥有 WCF 项目?
问题描述
我需要升级现有的 Windows 8.1 Mobile 应用程序才能在 Windows 10 上运行并开始研究这个问题。
我已设法将代码移植到 UWP 并构建并运行 UWP 应用程序 - 到目前为止一切顺利。
然而,在应用程序中有一个 WCF 项目用于获取数据,这不起作用。
我目前收到此错误无法加载文件或程序集'System.ServiceModel,Version=3.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089'。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)
UWP 应用程序甚至可能包含 WCF 项目并且这会起作用吗?在 VS2015 解决方案中,这一切都有效,但在 VS2019 中它不起作用,因为在 ServiceFactory 类中甚至无法创建实例。
我几乎没有 UWP 或 Windows 8.1 移动应用程序的经验,任何建议都会很棒。
谢谢格雷戈尔
解决方案
请注意,WCF客户端实际上可用于 .NET Core/.NET Standard!只有服务器端部分不适用于 .NET Core。
- WCF 服务:.NET 框架
- WCF 客户端:基于 .NET Standard(与 .NET Core 和 .NET Framework 一起使用)
在您的情况下,如果我理解正确,您想要调用现有服务,这意味着您需要 WCF 客户端,并且您实际上可以将该 WCF 客户端与 .NET Core/.NET Standard 2.0 以及 UWP 一起使用。
请执行下列操作:
- 将新的 .NET 标准类库项目添加到您的解决方案(这将替换您已经在解决方案中的 WCF 客户端库)
- 在解决方案资源管理器中,右键单击依赖项并选择“添加连接的服务”
- 这将在 Visual Studio 中打开一个页面,您可以在其中看到“Microsoft WCF Web 服务参考提供程序”:
单击它,将打开下面的对话框:
在上面的对话框中,输入您的服务的 URL,该对话框将为您生成整个 WCF 客户端代码,它还将添加对所需 WCF NuGet 包的引用。
从 UWP 项目中引用 .NET Standard 2.0 类库项目并使用它。
注意:.NET Core 中的 WCF-Client 不支持 .NET Framework 项目中已知的配置文件条目。这意味着配置是在 C# 代码中生成的。
我希望这会有所帮助,托马斯
推荐阅读
- node.js - MongoDB find 在 Node.Js 代码中返回 undefined
- sparql - 过滤英文标签后返回不同结果的 Wikidata SPARQL 查询
- c# - 实体框架和 ASP.NET MVC 应用程序的自定义 Linq 查询
- angular - 调用 auth0.com/oauth/token:在 Postman 中工作,而不是来自 Angular
- node.js - Node.JS:如何转发到带参数的登录页面?
- c++ - C++ 初始化列表与赋值
- jquery - 将 Jquery 数据表搜索结果传递给 ASP.NET MVC 控制器
- reactjs - 想修改道具但找不到
- php - 收集数组时在字符串上调用成员函数 getKey()
- azure-media-services - Microsoft.Azure.Management.Media .Net SDK 无法按名称获取/查找资产