守护应用时,设置UseShellExecute为false

This commit is contained in:
智能大石头 2023-05-24 23:51:21 +08:00
parent d055d9a997
commit 0a66f62af5
3 changed files with 18 additions and 6 deletions

View File

@ -208,7 +208,7 @@ public class ZipDeploy
// 如果带有 NewLife.Core.dll ,重定向基础目录
//Arguments = $"{Arguments} --BasePath={rundir}".Trim();
Environment.SetEnvironmentVariable("BasePath", rundir.FullName);
//Environment.SetEnvironmentVariable("BasePath", rundir.FullName);
ExecuteFile = runfile.FullName;
WriteLog("运行文件 {0}", runfile);
@ -221,7 +221,7 @@ public class ZipDeploy
// false时目前控制台合并到当前控制台一起退出
// true时目标控制台独立窗口不会一起退出
UseShellExecute = true,
UseShellExecute = false,
};
if (runfile.Extension.EqualIgnoreCase(".dll"))
{
@ -257,6 +257,12 @@ public class ZipDeploy
si.RedirectStandardError = true;
}
// 在环境变量中设置BasePath
if (si.UseShellExecute)
Environment.SetEnvironmentVariable("BasePath", si.WorkingDirectory);
else
si.EnvironmentVariables.Add("BasePath", si.WorkingDirectory);
WriteLog("工作目录: {0}", si.WorkingDirectory);
WriteLog("启动文件: {0}", si.FileName);
WriteLog("启动参数: {0}", si.Arguments);

View File

@ -267,7 +267,7 @@ public class LocalStarClient
var si = new ProcessStartInfo(fileName, "-run")
{
WorkingDirectory = Path.GetDirectoryName(fileName),
UseShellExecute = true
//UseShellExecute = true
};
var p = Process.Start(si);
@ -300,7 +300,7 @@ public class LocalStarClient
var si = new ProcessStartInfo(fileName, "-run")
{
WorkingDirectory = Path.GetDirectoryName(fileName),
UseShellExecute = true
//UseShellExecute = true
};
var p = Process.Start(si);
@ -329,7 +329,7 @@ public class LocalStarClient
var si = new ProcessStartInfo("dotnet", $"{fileName} -run")
{
WorkingDirectory = Path.GetDirectoryName(fileName),
UseShellExecute = true
//UseShellExecute = true
};
var p = Process.Start(si);

View File

@ -200,7 +200,7 @@ internal class ServiceController : DisposeBase
// false时目前控制台合并到当前控制台一起退出
// true时目标控制台独立窗口不会一起退出
UseShellExecute = true,
UseShellExecute = false,
};
// 指定用户时,以特定用户启动进程
@ -227,6 +227,12 @@ internal class ServiceController : DisposeBase
si.RedirectStandardOutput = true;
}
// 在环境变量中设置BasePath
if (si.UseShellExecute)
Environment.SetEnvironmentVariable("BasePath", si.WorkingDirectory);
else
si.EnvironmentVariables.Add("BasePath", si.WorkingDirectory);
WriteLog("工作目录: {0}", si.WorkingDirectory);
WriteLog("启动文件: {0}", si.FileName);
WriteLog("启动参数: {0}", si.Arguments);