我目前正在尝试将ASP.NET Core WebApi项目集成到WPF应用程序(最新的ASP.NET Core,最新的.NET Framework)中。这个想法是为用户提供一个REST API,以远程控制应用程序。但是,我无法将其集成到WPF应用程序中,并且一旦在WPF项目中引用Web项目,就会遇到编译错误:
“未知的构建错误,'无法解析对程序集'Microsoft.AspNetCore.Mvc.Core,版本= 2.1.2.0,Culture =中性PublicKeyToken = adb9793829ddae60的依赖关系,因为尚未预先加载它。当使用ReflectionOnly API时,依赖关系程序集必须通过ReflectionOnlyAssemblyResolve事件进行预加载或按需加载。”
有什么办法解决这个问题吗?
这是一个example VS2017 solution,其中包含WPF项目和ASP.NET Core项目,我刚刚在WPF项目中添加了对ASP.NET Core项目的引用。
更新:将ASP.NET Core项目设置为面向整个.NET框架,并且未使用.NET Core。
答案 0 :(得分:2)
WPF尚不支持.NET Core。您无法从WPF应用程序引用任何.NET Core程序集,因此无法在WPF应用程序中托管ASP.NET Core应用程序。
Microsoft已宣布从2019年开始对Windows桌面应用程序(包括WPF)提供.NET Core 3支持:https://blogs.msdn.microsoft.com/dotnet/2018/05/07/net-core-3-and-support-for-windows-desktop-applications/
答案 1 :(得分:0)
只是为了解决构建错误,您可以安装必需的缺少的Nuget包(WebApplication1的依赖项)及其依赖项。
通过在WpfApp1上安装followinf Nuget软件包,我能够成功构建并运行您提供的项目:
Microsoft.AspNetCore.MVC.Core
Microsoft.AspNetCore.Razor.Runtime
答案 2 :(得分:-1)
我建议您使用普通的WCF来完成此操作。 WCF还能够处理您的RESTful呼叫。 只需实施服务合同和数据合同即可。要在WPF中启动服务,请在启动时创建一个新的“ ServiceHost”以将其映射到URL和端口。