将ASP.NET Core Webapp部署到Raspberry Pi以承载致命错误

时间:2018-12-24 20:25:29

标签: asp.net-core raspberry-pi

我制作了一个ASP.NET Core Webapp,希望将其部署到我的树莓派中并使用NGINX进行托管。 正在遵循Microsoft提供的指南: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.2

我一直在测试应用程序。这就是我所做的:

在用于开发Web应用程序的Windows PC上,我转到了解决方案路径:

E:\testapp

并在cmd上运行命令:

dotnet publish --configuration Release

未发现任何错误,并且表明我作为testapp解决方案一部分的项目L07成功。

但是当我尝试通过运行来测试应用程序时:

dotnet L07.Views.dll

它返回了致命错误:

A fatal error was encountered. The library 'hostpolicy.dll' required
 to execute the application was not found in 'E:\testapp\L07\bin\Release\net461\publish\'.
 Failed to run as a self-contained app. If this should be a framework-dependent app, 
 add the E:\testapp\L07\bin\Release\net461\publish\L07.Views.runtimeconfig.json
 file specifying the appropriate framework.

。 我忽略了这一点,并将整个E:\ testapp \ L07 \ bin \ Release \ net461 \ publish文件转移到我的树莓派上,并运行相同的dotnet命令,这给了我另一个致命错误,即:

A fatal error occurred, the folder [/usr/local/bin/host/fxr] does not exist

我觉得我在这里做错了很多事情,任何人都可以据此提供尽可能详细的建议。

p / s不确定我是否将其发布在正确的网站上

1 个答案:

答案 0 :(得分:0)

您需要打开.csproj并添加适当的运行时标识符以进行发布。或者,您可以在命令提示符下输入正确的运行时标识符

This link包括运行时标识符的目录

dotnet publish -runtime <yourRID> ...

正如@Tseng所评论的那样,您需要确定是否需要自包含或依赖于框架的应用程序。

如果您要发布独立的应用程序,则

dotnet publish -runtime <yourRID> --self-contained ...