【问题标题】:Can you call a .net core exe from a .net exe?你可以从 .net exe 调用 .net core exe 吗?
【发布时间】:2019-10-03 22:18:30
【问题描述】:

我正在努力完成这项工作。下面是我正在运行的快速测试,但它不会启动 .net core exe。

我在这里将 .net core exe 发布为单个文件,输出类型为 windows exe。如果我在命令行上运行它,它会工作并创建日志等。

    var startInfo = new ProcessStartInfo(@"C:\Dev\Console.exe")
            {
                CreateNoWindow = true,
                ErrorDialog = false,
                UseShellExecute = false,
                RedirectStandardOutput = true,
                Arguments = "2019-08-29 25",
                WorkingDirectory = @"C:\Dev\"

            };

            try
            {
                var process = Process.Start(startInfo);

                var standardOutput = process.StandardOutput;
                process.WaitForExit();

                var output = standardOutput.ReadToEnd();

                Debug.WriteLine("Output: " + output);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.ToString());
            }

【问题讨论】:

  • 您是否尝试过让您的代码启动 .NET exe 而不是 .NET Core exe?
  • 是的,它可以很好地运行其他 .net exe。
  • 这是一个不同的名称,只是根据公司政策在示例中进行了更改。
  • 我使用 .NET Core 制作了一个“Hello World”“按 Enter 完成”控制台应用程序。我将您的代码复制到 .NET Framework C# 控制台应用程序中(仅修改程序名称和路径)并运行它(按 F5)。虽然我立即什么也没看到,但我能够在任务管理器中终止 .NET Core 应用程序,因此您的代码完成了,并且我在调试消息中看到了控制台应用程序输出。您是否看到“Console.exe”在任务管理器中运行?
  • 如果您没有遇到异常,您可以放心地假设它确实设法“启动”了 .exe 文件。使用任务管理器 > 进程选项卡查看此内容。它不似乎运行的标准原因是死锁。正如这段代码很可能发生的那样,当您不阅读其输出时,该程序无法取得进展。所以它不能终止并使 WaitForExit() 完成。

标签: .net .net-core


【解决方案1】:

我意识到 appsettings.json 和 log4net.config 都丢失了,并添加了我可以确认它正在运行的那些。我想在我通过 VS 2019 发布 .net 核心应用程序后,我认为这些会被添加,但实际上并没有。

【讨论】:

    猜你喜欢
    • 2020-01-29
    • 2011-06-05
    • 1970-01-01
    • 2011-06-23
    • 2020-01-01
    • 2016-09-20
    • 2019-09-01
    • 2010-09-18
    相关资源
    最近更新 更多