我在Visual Studio中创建了一个.Net核心C#控制台应用程序,并使用以下步骤在Linux上对其进行了测试。
....\bin\Release\netcoreapp2.1\publish
。chmod 777 myApp.dll
./myApp.dll
但是,执行该应用程序会显示以下错误
-bash:./myApp.dll:无法执行二进制文件
看来您做了框架相关的部署。本质上,发布命令是:
dotnet publish -c Release
FDD假定您将拥有一个.NET Core运行时,以便在目标平台上运行您的应用程序。
将publish
目录复制到另一台计算机(可能是Linux,macOS或Windows)后,您的应用程序仍然需要.NET Core运行时才能运行您的应用程序。
安装.NET Core运行时取决于您使用的特定Linux发行版。安装完成后,您可以通过以下方式运行应用程序:
dotnet /path/to/publish/myApp.dll
框架依赖部署的替代方法是自包含部署。在这种模式下,已发布的应用程序将包含您的应用程序以及.NET Core运行时的副本。在命令行上,进行SCD发布看起来像这样:
dotnet publish -r linux-x64 -c Release
有关在Visual Studio中执行此操作的信息,请参见上面的链接。然后,您应该看到一个bin\Release\netcoreapp2.1\linux-x64\publish\
包含myApp
文件的目录。您可以将此发布目录复制到Linux发行版中,然后运行:
/path/to/linux-x64/publish/myApp
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句