增加远程sql 安装

master
hang 2024-01-30 11:43:31 +08:00
parent 9d4d5df81e
commit a852a6a5c0
4 changed files with 79 additions and 77 deletions

30
Main.Designer.cs generated
View File

@ -84,14 +84,14 @@
groupBox1.Controls.Add(label1); groupBox1.Controls.Add(label1);
groupBox1.Location = new Point(11, 12); groupBox1.Location = new Point(11, 12);
groupBox1.Name = "groupBox1"; groupBox1.Name = "groupBox1";
groupBox1.Size = new Size(614, 205); groupBox1.Size = new Size(614, 199);
groupBox1.TabIndex = 0; groupBox1.TabIndex = 0;
groupBox1.TabStop = false; groupBox1.TabStop = false;
groupBox1.Text = "Step 1: Validate Database"; groupBox1.Text = "Step 1: Validate Database";
// //
// connectButton // connectButton
// //
connectButton.Location = new Point(223, 145); connectButton.Location = new Point(223, 142);
connectButton.Name = "connectButton"; connectButton.Name = "connectButton";
connectButton.Size = new Size(149, 40); connectButton.Size = new Size(149, 40);
connectButton.TabIndex = 6; connectButton.TabIndex = 6;
@ -101,7 +101,7 @@
// //
// passwordTextBox // passwordTextBox
// //
passwordTextBox.Location = new Point(178, 113); passwordTextBox.Location = new Point(178, 108);
passwordTextBox.Name = "passwordTextBox"; passwordTextBox.Name = "passwordTextBox";
passwordTextBox.PasswordChar = '*'; passwordTextBox.PasswordChar = '*';
passwordTextBox.Size = new Size(303, 23); passwordTextBox.Size = new Size(303, 23);
@ -109,7 +109,7 @@
// //
// usernameTextBox // usernameTextBox
// //
usernameTextBox.Location = new Point(180, 73); usernameTextBox.Location = new Point(180, 72);
usernameTextBox.Name = "usernameTextBox"; usernameTextBox.Name = "usernameTextBox";
usernameTextBox.Size = new Size(303, 23); usernameTextBox.Size = new Size(303, 23);
usernameTextBox.TabIndex = 4; usernameTextBox.TabIndex = 4;
@ -117,7 +117,7 @@
// //
// serverTextBox // serverTextBox
// //
serverTextBox.Location = new Point(180, 33); serverTextBox.Location = new Point(180, 32);
serverTextBox.Name = "serverTextBox"; serverTextBox.Name = "serverTextBox";
serverTextBox.Size = new Size(303, 23); serverTextBox.Size = new Size(303, 23);
serverTextBox.TabIndex = 3; serverTextBox.TabIndex = 3;
@ -126,7 +126,7 @@
// label3 // label3
// //
label3.AutoSize = true; label3.AutoSize = true;
label3.Location = new Point(76, 113); label3.Location = new Point(76, 108);
label3.Name = "label3"; label3.Name = "label3";
label3.Size = new Size(64, 17); label3.Size = new Size(64, 17);
label3.TabIndex = 2; label3.TabIndex = 2;
@ -135,7 +135,7 @@
// label2 // label2
// //
label2.AutoSize = true; label2.AutoSize = true;
label2.Location = new Point(119, 73); label2.Location = new Point(119, 72);
label2.Name = "label2"; label2.Name = "label2";
label2.Size = new Size(21, 17); label2.Size = new Size(21, 17);
label2.TabIndex = 1; label2.TabIndex = 1;
@ -144,7 +144,7 @@
// label1 // label1
// //
label1.AutoSize = true; label1.AutoSize = true;
label1.Location = new Point(56, 33); label1.Location = new Point(56, 32);
label1.Name = "label1"; label1.Name = "label1";
label1.Size = new Size(84, 17); label1.Size = new Size(84, 17);
label1.TabIndex = 0; label1.TabIndex = 0;
@ -170,7 +170,7 @@
groupBox2.Controls.Add(nginxPortTBox); groupBox2.Controls.Add(nginxPortTBox);
groupBox2.Controls.Add(label4); groupBox2.Controls.Add(label4);
groupBox2.Controls.Add(label5); groupBox2.Controls.Add(label5);
groupBox2.Location = new Point(12, 223); groupBox2.Location = new Point(12, 217);
groupBox2.Name = "groupBox2"; groupBox2.Name = "groupBox2";
groupBox2.Size = new Size(613, 468); groupBox2.Size = new Size(613, 468);
groupBox2.TabIndex = 1; groupBox2.TabIndex = 1;
@ -344,9 +344,9 @@
groupBox3.Controls.Add(machineCodeLB); groupBox3.Controls.Add(machineCodeLB);
groupBox3.Controls.Add(label6); groupBox3.Controls.Add(label6);
groupBox3.Controls.Add(label7); groupBox3.Controls.Add(label7);
groupBox3.Location = new Point(11, 708); groupBox3.Location = new Point(11, 688);
groupBox3.Name = "groupBox3"; groupBox3.Name = "groupBox3";
groupBox3.Size = new Size(614, 227); groupBox3.Size = new Size(614, 198);
groupBox3.TabIndex = 2; groupBox3.TabIndex = 2;
groupBox3.TabStop = false; groupBox3.TabStop = false;
groupBox3.Text = "Step 3: Activate and Deploy"; groupBox3.Text = "Step 3: Activate and Deploy";
@ -364,7 +364,7 @@
// activeBtn // activeBtn
// //
activeBtn.Enabled = false; activeBtn.Enabled = false;
activeBtn.Location = new Point(222, 149); activeBtn.Location = new Point(222, 136);
activeBtn.Name = "activeBtn"; activeBtn.Name = "activeBtn";
activeBtn.Size = new Size(149, 40); activeBtn.Size = new Size(149, 40);
activeBtn.TabIndex = 9; activeBtn.TabIndex = 9;
@ -418,7 +418,7 @@
groupBox4.Controls.Add(logTBox); groupBox4.Controls.Add(logTBox);
groupBox4.Location = new Point(631, 11); groupBox4.Location = new Point(631, 11);
groupBox4.Name = "groupBox4"; groupBox4.Name = "groupBox4";
groupBox4.Size = new Size(391, 924); groupBox4.Size = new Size(391, 870);
groupBox4.TabIndex = 4; groupBox4.TabIndex = 4;
groupBox4.TabStop = false; groupBox4.TabStop = false;
groupBox4.Text = "Deployment Log"; groupBox4.Text = "Deployment Log";
@ -427,7 +427,7 @@
// //
logTBox.Location = new Point(6, 22); logTBox.Location = new Point(6, 22);
logTBox.Name = "logTBox"; logTBox.Name = "logTBox";
logTBox.Size = new Size(359, 899); logTBox.Size = new Size(359, 842);
logTBox.TabIndex = 0; logTBox.TabIndex = 0;
logTBox.Text = ""; logTBox.Text = "";
// //
@ -435,7 +435,7 @@
// //
AutoScaleDimensions = new SizeF(7F, 17F); AutoScaleDimensions = new SizeF(7F, 17F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1034, 944); ClientSize = new Size(1034, 889);
Controls.Add(groupBox4); Controls.Add(groupBox4);
Controls.Add(groupBox3); Controls.Add(groupBox3);
Controls.Add(groupBox2); Controls.Add(groupBox2);

124
Main.cs
View File

@ -78,7 +78,7 @@ namespace Start
connection.Open(); connection.Open();
}); });
WinformLog("Database connection test successful", Color.Green); WinformLog("Database connection test succeeded.", Color.Green);
isCanDBConfig = false; isCanDBConfig = false;
serverTextBox.Enabled = isCanDBConfig; serverTextBox.Enabled = isCanDBConfig;
@ -115,26 +115,26 @@ namespace Start
if (int.TryParse(nginxPortTBox.Text, out vuePort) == false || int.TryParse(apiPortTBox.Text, out apiPort) == false) if (int.TryParse(nginxPortTBox.Text, out vuePort) == false || int.TryParse(apiPortTBox.Text, out apiPort) == false)
{ {
WinformLog($"Please enter a valid port", Color.Red); WinformLog($"Please enter a valid port number!", Color.Red);
return; return;
} }
if (IsPortInUse(vuePort)) if (IsPortInUse(vuePort))
{ {
WinformLog($"The front-end port set by the service is occupied, please choose another port", Color.Red); WinformLog($"The front-end port set by the service is already in use. Please choose another port!", Color.Red);
return; return;
} }
if (IsPortInUse(apiPort)) if (IsPortInUse(apiPort))
{ {
WinformLog($"The back-end port set by the service is occupied, please choose another port", Color.Red); WinformLog($"The back-end port set by the service is already in use. Please choose another port!", Color.Red);
return; return;
} }
WinformLog("Port test successful", Color.Green); WinformLog("Port test succeeded.", Color.Green);
isPortTestOk = true; isPortTestOk = true;
@ -148,20 +148,20 @@ namespace Start
{ {
if (ServiceController.GetServices().Any(t => t.ServiceName == serviceNameTBox.Text)) if (ServiceController.GetServices().Any(t => t.ServiceName == serviceNameTBox.Text))
{ {
WinformLog($"The set backend service name already exists, please replace it", Color.Red); WinformLog($"Name of the backend service already exists. Please change it!", Color.Red);
return; return;
} }
if (ServiceController.GetServices().Any(t => t.ServiceName == nginxServiceNameTbox.Text)) if (ServiceController.GetServices().Any(t => t.ServiceName == nginxServiceNameTbox.Text))
{ {
WinformLog($"The nginx service name already exists. Please change it", Color.Red); WinformLog($"Name of the nginx service already exists. Please change it!", Color.Red);
return; return;
} }
WinformLog($"Service name test successful", Color.Green); WinformLog($"Service name test succeeded.", Color.Green);
isServiceTestOk = true; isServiceTestOk = true;
} }
@ -216,7 +216,7 @@ namespace Start
{ {
// 执行逻辑,表示大于等于 6.0.0 的 .NET 运行时已安装 // 执行逻辑,表示大于等于 6.0.0 的 .NET 运行时已安装
WinformLog("Current system >= 6.0.0 NetCore runtime is installed", Color.Green); WinformLog("Netcore Runtime 6.0.0 or newer has been installed.", Color.Green);
isRuntimeTestOk = true; isRuntimeTestOk = true;
@ -225,13 +225,13 @@ namespace Start
{ {
WinformLog("The current system >= 6.0.0 NetCore runtime is not installed, please install it before running the program", Color.Red); WinformLog("Netcore Runtime 6.0.0 or newer is not installed. Please install it before running the deployment software.", Color.Red);
connectButton.Enabled = false; connectButton.Enabled = false;
//await Task.Run(() => //await Task.Run(() =>
// { // {
// WinformLog("Now start installing the Net core runtime for you...", Color.Orange); // WinformLog("Installing Netcore Runtime….", Color.Orange);
// string runtimePath = Path.Combine(AppContext.BaseDirectory, "Resource/NetCoreRuntime/dotnet-hosting-6.0.0-win.exe"); // string runtimePath = Path.Combine(AppContext.BaseDirectory, "Resource/NetCoreRuntime/dotnet-hosting-6.0.0-win.exe");
@ -247,7 +247,7 @@ namespace Start
// otherProcess.Start(); // otherProcess.Start();
// otherProcess.WaitForExit(); // otherProcess.WaitForExit();
// WinformLog("Net core 6.0.0 runtime installation completed", Color.Green); // WinformLog("Netcore 6.0.0 Runtime installation completed.", Color.Green);
// }); // });
@ -259,7 +259,7 @@ namespace Start
{ {
if (string.IsNullOrWhiteSpace(dbNameTBox.Text)) if (string.IsNullOrWhiteSpace(dbNameTBox.Text))
{ {
WinformLog($"Please enter the deployed database name", Color.Red); WinformLog($"Please enter the name of the deployed database!", Color.Red);
return; return;
} }
@ -281,14 +281,14 @@ namespace Start
if (rowCount > 0) if (rowCount > 0)
{ {
WinformLog($"{dbNameTBox.Text.Trim()}The database already exists.", Color.Red); WinformLog($"{dbNameTBox.Text.Trim()} This database already exists.", Color.Red);
return; return;
} }
} }
WinformLog($"Database name test successful", Color.Green); WinformLog($"Database name test succeeded. ", Color.Green);
isDBNameTestOK = true; isDBNameTestOK = true;
@ -306,17 +306,17 @@ namespace Start
if (string.IsNullOrWhiteSpace(this.folderPathTbox.Text)) if (string.IsNullOrWhiteSpace(this.folderPathTbox.Text))
{ {
WinformLog($"Confirmation can only be made after selecting the deployment path, test port, database name, and service name.", Color.Red); WinformLog($"Please select the deployment path ( Confirmation can be made only after port, database name, and service name pass the test.).", Color.Red);
return; return;
} }
if (isDBNameTestOK == false || isPortTestOk == false || isServiceTestOk == false) if (isDBNameTestOK == false || isPortTestOk == false || isServiceTestOk == false)
{ {
WinformLog($"Confirmation can only be made after the test port, database name, and service name are all test successful.", Color.Red); WinformLog($"Confirmation can be made only after port, database name, and service name pass the test.", Color.Red);
return; return;
} }
WinformLog($"Deployment configuration confirmed successfully", Color.Green); WinformLog($"Deployment configuration confirmed successfully.", Color.Green);
activeBtn.Enabled = true; activeBtn.Enabled = true;
@ -404,7 +404,7 @@ namespace Start
{ {
if (Md5($"{machineTextBox.Text}_XINGCANG") != KeySecreteTextBox.Text.Trim()) if (Md5($"{machineTextBox.Text}_XINGCANG") != KeySecreteTextBox.Text.Trim())
{ {
WinformLog($"The secret key is incorrect, please contact the supplier", Color.Red); WinformLog($"Secret key is not current. Please contact the vendor!", Color.Red);
return; return;
} }
@ -427,7 +427,9 @@ namespace Start
string dataExtraName = "EIMedViewerData"; string dataExtraName = "EIMedViewerData";
string nginxStartPath = Path.Combine(deployFoder, @$"{nginxExtractName}\"); string resouceFolder = "Resource";
string nginxStartPath = Path.Combine(deployFoder, @$"{nginxExtractName}");
var nginxConfigPath = Path.Combine(nginxStartPath, @$"conf\nginx.conf"); var nginxConfigPath = Path.Combine(nginxStartPath, @$"conf\nginx.conf");
var nginxEXEPath = Path.Combine(nginxStartPath, "nginx.exe"); var nginxEXEPath = Path.Combine(nginxStartPath, "nginx.exe");
string nginxServiceEXEPath = Path.Combine(nginxStartPath, "nginxService.exe"); string nginxServiceEXEPath = Path.Combine(nginxStartPath, "nginxService.exe");
@ -435,14 +437,14 @@ namespace Start
var apiBinPath = Path.Combine(deployFoder, "EIMedViewerService/EI_Med_Viewer.exe"); var apiBinPath = Path.Combine(deployFoder, apiExtractName, "EI_Med_Viewer.exe");
var apiJsonConfigPath = Path.Combine(deployFoder, "EIMedViewerService/appsettings.Test_510K.json"); var apiJsonConfigPath = Path.Combine(deployFoder, apiExtractName,"appsettings.Test_510K.json");
string nginxRarFilePath = Path.Combine(AppContext.BaseDirectory, $@"Resource\EIMedViewerWeb.rar"); string nginxRarFilePath = Path.Combine(AppContext.BaseDirectory, resouceFolder, "EIMedViewerWeb.rar");
string apiRarFilePath = Path.Combine(AppContext.BaseDirectory, "Resource/EIMedViewerService.rar"); string apiRarFilePath = Path.Combine(AppContext.BaseDirectory, resouceFolder, "EIMedViewerService.rar");
string dataRarFilePath = Path.Combine(AppContext.BaseDirectory, "Resource/EIMedViewerData.rar"); string dataRarFilePath = Path.Combine(AppContext.BaseDirectory, resouceFolder, "EIMedViewerData.rar");
@ -469,7 +471,7 @@ namespace Start
#region 解压nginx 和前端部署的文件 #region 解压nginx 和前端部署的文件
WinformLog($"Start decompressing nginx and front-end deployment compressed files...", Color.Green); WinformLog($"Start extracting Nginx and front-end deployment compressed files...", Color.Green);
string extractPath = Path.Combine(deployFoder, nginxExtractName); string extractPath = Path.Combine(deployFoder, nginxExtractName);
if (!Directory.Exists(extractPath)) if (!Directory.Exists(extractPath))
@ -494,7 +496,7 @@ namespace Start
} }
WinformLog($"The nginx and front-end deployment compressed files have been successfully decompressed to: {extractPath}", Color.Green); WinformLog($"Nginx and front-end deployment compressed files have been successfully extracted to: {extractPath}", Color.Green);
@ -504,10 +506,10 @@ namespace Start
if (!File.Exists(nginxConfigPath)) if (!File.Exists(nginxConfigPath))
{ {
WinformLog("No nginx exist under the default path", Color.Red); WinformLog("No nginx exists under the default path.", Color.Red);
} }
WinformLog("Prepare to write nginx configuration...", Color.Green); WinformLog("Prepare to write in Nginx configuration...", Color.Green);
var nginxConfig = File.ReadAllText(nginxConfigPath); var nginxConfig = File.ReadAllText(nginxConfigPath);
@ -516,12 +518,12 @@ namespace Start
File.WriteAllText(nginxConfigPath, nginxConfig); File.WriteAllText(nginxConfigPath, nginxConfig);
WinformLog("nginx deployment configuration writing completed", Color.Green); WinformLog("Nginx deployment configuration write-in completed!", Color.Green);
#region nginxservice #region nginxservice
WinformLog("Prepare nginx self-starting service configuration file...", Color.Green); WinformLog("Prepare Nginx self-starting service configuration file...", Color.Green);
var nginxServiceConfig = File.ReadAllText(nginxServiceXMLPath); var nginxServiceConfig = File.ReadAllText(nginxServiceXMLPath);
@ -533,25 +535,25 @@ namespace Start
File.WriteAllText(nginxServiceXMLPath, nginxServiceConfig); File.WriteAllText(nginxServiceXMLPath, nginxServiceConfig);
WinformLog("nginx self-starting service configuration writing completed", Color.Green); WinformLog("Nginx self-starting service configuration write-in completed", Color.Green);
#endregion #endregion
WinformLog($"Prepare to create a self-starting nginx service...", Color.Green); WinformLog($"Prepare to create self-starting nginx service...", Color.Green);
var nginxCreateStr = $@"{nginxServiceEXEPath} install "; var nginxCreateStr = $@"{nginxServiceEXEPath} install ";
// 执行 sc create 命令来创建服务 // 执行 sc create 命令来创建服务
await ProcessStandardInputAsync(process, nginxCreateStr); await ProcessStandardInputAsync(process, nginxCreateStr);
WinformLog($"The execution of creating service {nginxServiceName} ends", Color.Green); WinformLog($"The execution of creating Service {nginxServiceName} ends", Color.Green);
await Task.Delay(2000); await Task.Delay(2000);
#region nginx 服务 #region nginx 服务
WinformLog($"Start the deployed {nginxServiceName} service...", Color.Green); WinformLog($"Start the deployed service {nginxServiceName}...", Color.Green);
await ProcessStandardInputAsync(process, $"sc start {nginxServiceName}"); await ProcessStandardInputAsync(process, $"sc start {nginxServiceName}");
@ -570,11 +572,11 @@ namespace Start
if (scNginx.Status == ServiceControllerStatus.Running) if (scNginx.Status == ServiceControllerStatus.Running)
{ {
WinformLog($"nginx service started successfully", Color.Green); WinformLog($"Nginx service started successfully.", Color.Green);
} }
else else
{ {
WinformLog($"nginx service failed to start", Color.Red); WinformLog($"Nginx service failed to start.", Color.Red);
} }
#endregion #endregion
@ -616,7 +618,7 @@ namespace Start
{ {
#region 解压后端部署的文件 #region 解压后端部署的文件
WinformLog($"Start decompressing the backend deployment compressed file...", Color.Green); WinformLog($"Start extracting the backend deployment compressed file...", Color.Green);
string apiExtractPath = Path.Combine(deployFoder, apiExtractName); string apiExtractPath = Path.Combine(deployFoder, apiExtractName);
@ -643,7 +645,7 @@ namespace Start
} }
WinformLog($"The backend deployment compressed file was successfully extracted to: {apiExtractPath}", Color.Green); WinformLog($"The backend deployment compressed file has been successfully extracted to: {apiExtractPath}", Color.Green);
#endregion #endregion
}); });
@ -651,7 +653,7 @@ namespace Start
await Task.Run(() => await Task.Run(() =>
{ {
#region 解压模板文件 #region 解压模板文件
WinformLog($"Start decompressing the deployment dependency template compressed file...", Color.Green); WinformLog($"Start extracting template files…", Color.Green);
string extractPath = Path.Combine(deployFoder, dataExtraName); string extractPath = Path.Combine(deployFoder, dataExtraName);
if (!Directory.Exists(extractPath)) if (!Directory.Exists(extractPath))
@ -672,7 +674,7 @@ namespace Start
} }
WinformLog($"The dependency template compressed file was successfully extracted to: {extractPath}", Color.Green); WinformLog($"Template files have been successfully extracted to: {extractPath}", Color.Green);
#endregion #endregion
@ -705,7 +707,7 @@ namespace Start
} }
} }
} }
WinformLog($"Document resources released successfully", Color.Green); WinformLog($"Document resources have been released successfully.", Color.Green);
#endregion #endregion
}); });
@ -745,11 +747,11 @@ namespace Start
File.WriteAllText(Path.Combine(directoryPath, "config.json"), JsonConvert.SerializeObject(configObj)); File.WriteAllText(Path.Combine(directoryPath, "config.json"), JsonConvert.SerializeObject(configObj));
WinformLog("Writing the activation key is completed", Color.Green); WinformLog("Activation key writing has been completed.", Color.Green);
} }
catch (Exception ex) catch (Exception ex)
{ {
WinformLog("Failed to write the activation key. Please start the program in administrator mode to ensure that the program has sufficient permissions.", Color.Red); WinformLog("Activation key writing failed. Please launch the application in administrator's mode, and make sure that the application has sufficient permissions.", Color.Red);
} }
#endregion #endregion
@ -774,7 +776,7 @@ namespace Start
// 执行 sc create 命令来创建服务 // 执行 sc create 命令来创建服务
await ProcessStandardInputAsync(process, createStr); await ProcessStandardInputAsync(process, createStr);
WinformLog($"The execution of creating service{serviceName}ends", Color.Green); WinformLog($"Creating {serviceName} service has ended.", Color.Green);
#endregion #endregion
@ -783,25 +785,25 @@ namespace Start
#region 初始化数据库脚本 #region 初始化数据库脚本
WinformLog($"Execute initialization database script...", Color.Green); WinformLog($"Initialize database script...", Color.Green);
//执行数据库脚本 //执行数据库脚本
await ProcessStandardInputAsync(process, $@" SQLCMD -v dbName = ""{dbNameTBox.Text}"" -i ""{AppContext.BaseDirectory}Resource\Data\dbo.sql"" "); await ProcessStandardInputAsync(process, $@" SQLCMD -S {serverTextBox.Text} -U {usernameTextBox.Text} -P {passwordTextBox.Text} -v dbName = ""{dbNameTBox.Text}"" -i ""{AppContext.BaseDirectory}Resource\Data\dbo.sql"" ");
await Task.Delay(3000); await Task.Delay(3000);
await ProcessStandardInputAsync(process, $@" SQLCMD -v dbName = ""{dbNameTBox.Text}"" -i ""{AppContext.BaseDirectory}Resource\Data\data.sql"" "); await ProcessStandardInputAsync(process, $@" SQLCMD -S {serverTextBox.Text} -U {usernameTextBox.Text} -P {passwordTextBox.Text} -v dbName = ""{dbNameTBox.Text}"" -i ""{AppContext.BaseDirectory}Resource\Data\data.sql"" ");
WinformLog($"The execution of the initialization database script ends", Color.Green); WinformLog($"Initializing database script has ended.", Color.Green);
#endregion #endregion
#region 部署网站配置文件写入 #region 部署网站配置文件写入
WinformLog("Start writing the deployment website service configuration file...", Color.Green); WinformLog("Start writing service configuration file…", Color.Green);
var appsettingsJson = File.ReadAllText(apiJsonConfigPath); var appsettingsJson = File.ReadAllText(apiJsonConfigPath);
@ -829,13 +831,13 @@ namespace Start
catch (SqlException ex) catch (SqlException ex)
{ {
WinformLog($"Connection string error", Color.Red); WinformLog($"Database connection string error", Color.Red);
return; return;
} }
WinformLog("Deploy the website service configuration file, write and test OK", Color.Green); WinformLog("Service configuration file writing & testing has been done.", Color.Green);
#endregion #endregion
@ -852,7 +854,7 @@ namespace Start
#region 启动后端服务 #region 启动后端服务
WinformLog($"Start the deployed backend service...", Color.Green); WinformLog($"Start the backend service.", Color.Green);
await ProcessStandardInputAsync(process, $"sc start {serviceName}"); await ProcessStandardInputAsync(process, $"sc start {serviceName}");
@ -878,14 +880,14 @@ namespace Start
if (sc.Status == ServiceControllerStatus.Running) if (sc.Status == ServiceControllerStatus.Running)
{ {
WinformLog($"Backend service started successfully", Color.Green); WinformLog($"Backend service started successfully.", Color.Green);
WinformLog($"Deployment completed", Color.Green); WinformLog($"Deployment has been completed.", Color.Green);
try try
{ {
WinformLog($"Now ready to open the browser...", Color.Green); WinformLog($"Ready to open the browser…", Color.Green);
await Task.Delay(2000); await Task.Delay(2000);
// Use ProcessStartInfo class // Use ProcessStartInfo class
@ -906,7 +908,7 @@ namespace Start
} }
else else
{ {
WinformLog($"The backend service failed to start. You can try to start {serviceDisplayName}manually. If you still cannot start after trying manually, please contact technical personnel to confirm the deployment environment.", Color.Red); WinformLog($"Backend service failed to start. Please try to start {serviceDisplayName} manually. If a manual start still fails, please contact tech support to confirm the deployment environment.", Color.Red);
} }
#endregion #endregion
@ -939,7 +941,7 @@ namespace Start
confimDeployBtn.Enabled = true; confimDeployBtn.Enabled = true;
WinformLog($"Deployment path selected successfully", Color.Green); WinformLog($"Deployment path selection was successful.", Color.Green);
} }
@ -949,7 +951,7 @@ namespace Start
{ {
Clipboard.SetText(machineTextBox.Text); Clipboard.SetText(machineTextBox.Text);
WinformLog("The machine code was copied to the clipboard successfully!", Color.Green); WinformLog("Machine code has been copied to the clipboard successfully. ", Color.Green);
} }
private void Main_Load(object sender, EventArgs e) private void Main_Load(object sender, EventArgs e)
@ -981,13 +983,13 @@ namespace Start
{ {
foreach (var instanceName in key.GetValueNames()) foreach (var instanceName in key.GetValueNames())
{ {
WinformLog($"The current system SQL Server installed instance: {instanceName}", Color.Green); WinformLog($"An SQL Server instance already exists and its name is: {instanceName}", Color.Green);
} }
} }
} }
else else
{ {
WinformLog("SQL Server is not installed, please install it before running the deployment program.", Color.Red); WinformLog("SQL Server is not installed. Please install it before running the deployment program.", Color.Red);
} }

View File

@ -18,7 +18,7 @@
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing"">Blue</data> <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value> <value>[base64 mime encoded serialized .NET Framework object]</value>
</data> </data>

Binary file not shown.