将 .net 核心应用程序部署到 visual studio 中的 linux?
Deploy .net core app to linux in visual studio?
我正在 Visual Studio 2017 年构建一个 .net 核心应用程序。我想将我的发布过程自动化到 linux 机器。
这是我目前的流程:
- 在 Visual Studio 中,单击发布选项卡,select 发布
- 打开
WinSCP
,登录目标linux机器
- 打开文件夹
solution\myapp\bin\Release\netcoreapp2.2\publish\
- CTRL+A select 都在发布文件夹中,CTRL+ C复制所有文件,然后CTRL+V粘贴到
WinSCP
目标目录
- 打开
PuTTY
,登录目标linux机器,使用dotnet myapp.dll
重启应用
从 Visual Studio 发布时,我可以自动执行这些步骤吗?
它的工作方式类似于 dotnet publish,但允许您通过 SSH 将应用程序复制到目标 linux 机器。
这是我的配置:
dotnet publish-ssh --ssh-host <host> --ssh-user <user> --ssh-password <pass> --ssh-path /var/<myapp> --configuration Release --framework netcoreapp3.1 --runtime linux-x64 --self-contained false /p:PublishSingleFile=true
要重新启动应用程序,您可以尝试使用 Posh-SSH 模块的 powershell:
Import-Module Posh-SSH
$serverAddress = "host addr"
$user = "user"
$pass = ConvertTo-SecureString "pass" -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential ($user, $pass)
$launchFolder = "/var/<myapp>"
$sshSession = New-SSHSession -ComputerName $serverAddress -Credential $creds -ErrorAction Stop
Invoke-SSHCommand -SSHSession $sshSession -Command "<your restart command>"
Remove-SSHSession -SSHSession $sshSession
我正在 Visual Studio 2017 年构建一个 .net 核心应用程序。我想将我的发布过程自动化到 linux 机器。
这是我目前的流程:
- 在 Visual Studio 中,单击发布选项卡,select 发布
- 打开
WinSCP
,登录目标linux机器 - 打开文件夹
solution\myapp\bin\Release\netcoreapp2.2\publish\
- CTRL+A select 都在发布文件夹中,CTRL+ C复制所有文件,然后CTRL+V粘贴到
WinSCP
目标目录 - 打开
PuTTY
,登录目标linux机器,使用dotnet myapp.dll
重启应用
从 Visual Studio 发布时,我可以自动执行这些步骤吗?
它的工作方式类似于 dotnet publish,但允许您通过 SSH 将应用程序复制到目标 linux 机器。
这是我的配置:
dotnet publish-ssh --ssh-host <host> --ssh-user <user> --ssh-password <pass> --ssh-path /var/<myapp> --configuration Release --framework netcoreapp3.1 --runtime linux-x64 --self-contained false /p:PublishSingleFile=true
要重新启动应用程序,您可以尝试使用 Posh-SSH 模块的 powershell:
Import-Module Posh-SSH
$serverAddress = "host addr"
$user = "user"
$pass = ConvertTo-SecureString "pass" -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential ($user, $pass)
$launchFolder = "/var/<myapp>"
$sshSession = New-SSHSession -ComputerName $serverAddress -Credential $creds -ErrorAction Stop
Invoke-SSHCommand -SSHSession $sshSession -Command "<your restart command>"
Remove-SSHSession -SSHSession $sshSession