This commit is contained in:
2023-04-27 12:49:55 +08:00
parent 5e9877b642
commit 9b54e02979
7 changed files with 120 additions and 42 deletions
+1
View File
@@ -14,6 +14,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="SSH.NET" Version="2020.0.2" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="6.0.0" />
</ItemGroup>
+98 -41
View File
@@ -1,61 +1,118 @@
// See https://aka.ms/new-console-template for more information
using Renci.SshNet;
using System.Diagnostics;
using System.ServiceProcess;
string nginxPath = @"D:\test\EIImageViewerWeb\nginx.exe";
string command = $"create EI_Nginx binPath= \"{nginxPath} -p D:\\test\\EIImageViewerWeb\\\" start= auto DisplayName= \"EI_Nginx_DisplayName\"";
using System.Text;
try
{
// 使用SC命令创建Nginx服务
using (var process = new System.Diagnostics.Process())
// 创建一个SSH客户端实例
using (var client = new SshClient("123.56.94.154", "Administrator", "WHxckj2019"))
{
process.StartInfo.FileName = "sc";
process.StartInfo.Arguments = command;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
process.WaitForExit();
// 检查服务是否已成功创建
if (process.ExitCode != 0)
// 连接到远程服务器
client.Connect();
//&& .\\IRaCIS_Vue_Web.bat
//&& ./IRaCIS_Vue_Web.bat
string command = "cd C:\\Users\\Administrator\\VueSourceCode\\ ";
//// 切换到指定目录
//var commandCd = client.CreateCommand("cd C:\\Users\\Administrator\\bat");
using (var cmd = client.CreateCommand(command))
{
throw new Exception($"Error creating service: {process.StandardOutput.ReadToEnd()}");
var output = cmd.Execute();
Console.WriteLine(output);
}
}
// 启动Nginx服务
using (var controller = new ServiceController("EI_Nginx"))
{
controller.Start();
}
var processInfo = new ProcessStartInfo("npm", "i")
{
CreateNoWindow = false,
UseShellExecute = false,
RedirectStandardOutput = true
};
Console.WriteLine("Nginx service created and started successfully.");
using (var process = new Process())
{
process.StartInfo = processInfo;
process.OutputDataReceived += (sender, args) => Console.WriteLine(args.Data);
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
}
// 断开SSH连接
client.Disconnect();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
string currentDir = Directory.GetCurrentDirectory();
DirectoryInfo dirInfo = new DirectoryInfo(currentDir);
foreach (var subdir in dirInfo.GetDirectories())
{
FileInfo[] files = subdir.GetFiles();
//// See https://aka.ms/new-console-template for more information
//using System.Diagnostics;
//using System.ServiceProcess;
foreach (FileInfo file in files)
{
if (file.Name == "Start.exe")
{
string startPath = Path.Combine(subdir.FullName, "Start.exe");
Process.Start(startPath);
return;
}
}
}
//string nginxPath = @"D:\test\EIImageViewerWeb\nginx.exe";
//string command = $"create EI_Nginx binPath= \"{nginxPath} -p D:\\test\\EIImageViewerWeb\\\" start= auto DisplayName= \"EI_Nginx_DisplayName\"";
Console.WriteLine("当前目录子文件中未找到Start.exe,程序即将退出...");
Console.ReadLine();
//try
//{
// // 使用SC命令创建Nginx服务
// using (var process = new System.Diagnostics.Process())
// {
// process.StartInfo.FileName = "sc";
// process.StartInfo.Arguments = command;
// process.StartInfo.UseShellExecute = false;
// process.StartInfo.RedirectStandardOutput = true;
// process.Start();
// process.WaitForExit();
// // 检查服务是否已成功创建
// if (process.ExitCode != 0)
// {
// throw new Exception($"Error creating service: {process.StandardOutput.ReadToEnd()}");
// }
// }
// // 启动Nginx服务
// using (var controller = new ServiceController("EI_Nginx"))
// {
// controller.Start();
// }
// Console.WriteLine("Nginx service created and started successfully.");
//}
//catch (Exception ex)
//{
// Console.WriteLine(ex.Message);
//}
//Console.ReadLine();
//string currentDir = Directory.GetCurrentDirectory();
//DirectoryInfo dirInfo = new DirectoryInfo(currentDir);
//foreach (var subdir in dirInfo.GetDirectories())
//{
// FileInfo[] files = subdir.GetFiles();
// foreach (FileInfo file in files)
// {
// if (file.Name == "Start.exe")
// {
// string startPath = Path.Combine(subdir.FullName, "Start.exe");
// Process.Start(startPath);
// return;
// }
// }
//}
//Console.WriteLine("当前目录子文件中未找到Start.exe,程序即将退出...");
//Console.ReadLine();