我有一个C#应用程序,它具有GUI并将其输出类型设置为Windows应用程序。我还希望通过命令行(通过参数)调用它,因此它也需要成为控制台应用程序。
有没有办法使我的应用程序既可以作为Windows应用程序运行,又可以作为控制台应用程序运行?
是否可以在运行时设置此选项,还是只能在编译时设置?
我有一个C#应用程序,它具有GUI并将其输出类型设置为Windows应用程序。我还希望通过命令行(通过参数)调用它,因此它也需要成为控制台应用程序。
有没有办法使我的应用程序既可以作为Windows应用程序运行,又可以作为控制台应用程序运行?
是否可以在运行时设置此选项,还是只能在编译时设置?
您可以连接控制台。请将Program.cs中的代码更改为以下内容:
[STAThread]
static void Main(string[] args) {
if (args.Length > 0) {
AttachConsole(-1);
Console.WriteLine("");
Console.WriteLine("Running in console, press ENTER to continue");
Console.ReadLine();
}
else {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern bool AttachConsole(int pid);
static void Main(string[] args)
{
if (args.Length > 0)
{
// Run it without Windows Forms GUI
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
target:
选项。/target:winexe
构建Windows应用程序(即带有GUI);/target:exe
则构建控制台应用程序。但两种类型的应用程序都可以接受命令行参数。