我可以在 Visual Studio 中编辑 ASP.NET Core 应用程序并部署到 Linux 服务器吗(例如,Ubuntu)?
Can I edit a ASP.NET Core application in Visual Studio and deploy to Linux server (e.g., Ubuntu)?
有针对这个问题的教程吗?
Is there a tutorial for this problem?
推荐答案您可以在 ASP.NET CORE 文档中查看此页面 - docs.microsoft/en-us/aspnet/core/publishing/linuxproduction
You can check this page in the ASP.NET CORE documentation - docs.microsoft/en-us/aspnet/core/publishing/linuxproduction
在 Scott Hanselman 的这篇博文中也可以找到一个很好的例子 - www.hanselman/blog/PublishingAnASPNETCoreWebsiteToACheapLinuxVMHost.aspx
A good example can also be found in this blog post from Scott Hanselman - www.hanselman/blog/PublishingAnASPNETCoreWebsiteToACheapLinuxVMHost.aspx
我目前使用自己的批处理脚本进行部署,具体步骤如下:
I currently use my own batch script to deploy which follows these steps:
我已经按照 Andrew Basarab 的要求添加了我在发布原始答案时使用的脚本版本.考虑到我当时糟糕的脚本知识,我确信它需要一些重构.请谨慎使用:
I have added the version of my script which I used when I posted my original answer as requested by Andrew Basarab. I'm sure it needs some refactoring considering my poor scripting knowledge back then. Please use with caution:
@echo off set PrivateKeyLocation="C:fakepathfakefile.ppk {private key for connecting to the remote Linux machine}" set CertificateFileLocation="/mnt/c/fakepath/fakefile.pem {same key used to execute remote bash commands from my Windows machine}" for %%* in (.) do set CurrentDirName=%%~nx* set OutputFolder="%tmp%\%CurrentDirName%" set OutputZipFile="%tmp%\%CurrentDirName%.zip" set RemoteHost="ubuntu@54.142.181.122 {remote host address}" set RemoteLocation="/home/ubuntu {the location to copy the output to}" dotnet publish -o "%OutputFolder%" powershell -command "& {&'Compress-Archive' -Path %OutputFolder% -DestinationPath %OutputZipFile%}" rmdir /s /q %OutputFolder% pscp -i %PrivateKeyLocation% -pw {private key password} %OutputZipFile% %RemoteHost%:%RemoteLocation% del /q %OutputZipFile% bash -c "ssh -i %CertificateFileLocation% %RemoteHost% 'sudo rm -rf %CurrentDirName% ; unzip %CurrentDirName%.zip ; rm -r %CurrentDirName%.zip ; sudo service supervisor restart'"一些工具和服务需要在两台机器上安装.请参阅 Scott Hanselman 的上述帖子.
Some tools and services need to be installed on both machines. Please refer to the aforementioned post by Scott Hanselman.
更多推荐
将 ASP.NET Core 从 Visual Studio 发布到 Linux
发布评论