C# 从WPF应用程序启动控制台应用程序

C# 从WPF应用程序启动控制台应用程序,c#,.net,wpf,C#,.net,Wpf,我想知道是否可以从WPF应用程序启动控制台应用程序 在我的控制台应用程序中,我添加了一个名为Reports的类。在我的WPF应用程序中,我创建了一个Reports对象并调用它的一个公共方法 它调用的方法包含以下代码。问题是代码没有等待用户输入任何输入,因此在ValidateUserInput中崩溃。我也没有看到任何控制台应用程序实际加载。我看不出如何在控制台应用程序中调用程序类的Main方法。你可能知道我很迷路 Console.WriteLine("*** Running Report ***"

我想知道是否可以从WPF应用程序启动控制台应用程序

在我的控制台应用程序中,我添加了一个名为Reports的类。在我的WPF应用程序中,我创建了一个Reports对象并调用它的一个公共方法

它调用的方法包含以下代码。问题是代码没有等待用户输入任何输入,因此在ValidateUserInput中崩溃。我也没有看到任何控制台应用程序实际加载。我看不出如何在控制台应用程序中调用程序类的Main方法。你可能知道我很迷路

Console.WriteLine("*** Running Report ***");                
Console.WriteLine("User enter something:");
string myStr = Console.ReadLine();
ValidateUserInput(myStr);

由于您正在运行WPF应用程序,所以如果在调试模式下运行,所有控制台输出都将转到VisualStudio的输出窗口

要真正启动控制台应用程序,您必须手动打开控制台窗口,并在使用后将其关闭。在类中添加以下方法:

[DllImport("Kernel32")]
public static extern void AllocConsole();

[DllImport("Kernel32", SetLastError = true)]
public static extern void FreeConsole();
现在,使用如下方法:

AllocConsole();
report.ConsoleMethod() // Method to console application.
FreeConsole();

由于您正在运行WPF应用程序,所以如果在调试模式下运行,所有控制台输出都将转到VisualStudio的输出窗口

要真正启动控制台应用程序,您必须手动打开控制台窗口,并在使用后将其关闭。在类中添加以下方法:

[DllImport("Kernel32")]
public static extern void AllocConsole();

[DllImport("Kernel32", SetLastError = true)]
public static extern void FreeConsole();
现在,使用如下方法:

AllocConsole();
report.ConsoleMethod() // Method to console application.
FreeConsole();

杜普?你也可以看看这个dup?你也可以看看这个HI@Rohit。谢谢你发布答案。值得一提的是,在调试模式下,控制台会打开,但WriteLine()方法在hi@Rohit中不起作用。谢谢你发布答案。值得一提的是,在调试模式下,控制台会打开,但WriteLine()方法不起作用