0

我最近将带有升级助手工具的 dotnet framework v4.7.2 WCF 服务迁移到 NetStandard 2.0。该项目成功迁移和编译,我无法从 Visual Studio 或 dotnet cli 启动该服务。我从 dotnet cli 工具得到的错误是:

遇到致命错误。未找到执行应用程序所需的库“hostpolicy.dll”。

并且我尝试从 Visual Studio 启动服务时出现的错误,解决方案资源管理器 -> 右键单击​​ wcf 项目 -> 调试 -> 启动新实例是:

输出类型为类库的项目无法直接启动。

PS,当 WCF 服务还是 dotnet framework v4.7.2 时,我可以在 Visual Studio 中轻松启动服务,执行上述过程。

4

2 回答 2

1

据我所知,.net 4.7.2 是支持 .netstandard 2.0 的最低真实版本

您可以将其备份并升级到 4.7.2 进行试用。

于 2021-09-21T02:38:57.203 回答
0

.NET Standard 或 .NET Core/.NET 5+ 不支持 WCF 服务器 API,因此没有好方法可以向前迁移此类应用程序。

升级助手会尝试根据之前的项目类型确定项目是否应该升级到库或 exe。对于这个项目,Upgrade Assistant 猜测它是一个库,因为没有传统的 main 方法,也不是 Web 应用程序或工具理解为可执行的其他项目类型。但是,无论是将其升级为 .NET Standard 库还是 .NET 5 exe,它都不起作用,因为 WCF 服务器 API 仅在 .NET Framework 上受支持。

如果升级助手在流程的早期提醒您这一点可能会很好,这样您就知道升级不适用于此类项目。我认为它具有这样的功能,但对于这个特定的项目,它一定是错过了。您可以在工具的 GitHub 页面 ( https://github.com/dotnet/upgrade-assistant/issues ) 上提供反馈。

至于如何实际升级 WCF 服务器的东西,您需要使用不同的技术重新架构,如 ASP.NET Core、gRPC 或CoreWCF

于 2021-09-21T21:05:49.263 回答