如何使用 UserInteractive=false 从蝙蝠文件运行 exe

本文关键字:蝙蝠 文件 运行 exe false 何使用 UserInteractive | 更新日期: 2023-09-27 18:30:18

我创建了控制台应用程序,如果以exe身份运行,则使用控制台与用户交互(用于调试目的),如果从bat文件运行,则必须安装顶级服务。但是现在我遇到了一个问题,因为在执行这样的 bat 文件时:

cd "%~dp0"
TCPAgent.exe install

UserInteractive是真的(因为bat文件创建了一个控制台窗口),我的程序出现了。如何安装顶级服务?我不想创建一个蝙蝠文件来运行文件,因为对我来说这看起来像是矫枉过正......

这是 y Programm 的代码.cs:

static void Main(string[] args)
    {
        if (Environment.UserInteractive)
        {
            var agent = new TcpAgent();
            agent.Start();
            Console.ReadLine();
            agent.Stop();
        }
        else
        {
            HostFactory.Run(
            x =>
            {
                x.Service<TCPAgentServiceControl>(
                    s =>
                    {
                        s.ConstructUsing(name => new TCPAgentServiceControl());
                        s.WhenStarted((control, hostControl) => control.Start(hostControl));
                        s.WhenStopped((control, hostControl) => control.Stop(hostControl));
                    });
                x.UseNLog(LogManager.GetCurrentClassLogger().Factory);
                x.RunAsLocalSystem();
            });
        }
    }

我将不胜感激任何帮助!

如何使用 UserInteractive=false 从蝙蝠文件运行 exe

我相信你应该在 bat 文件中将你的值作为命令行参数传递。当您在控制台中运行它时,项目将不会获得注释行参数,因此它将处于调试模式