WPF 无法读取传递的参数

WPF can't read arguments passed

我试图在 WPF 中获取命令行参数,但它总是 returns []。很奇怪我什至尝试通过 cmd 发送参数但没有成功

    private void Application_Startup(object sender, StartupEventArgs e)
    {
        MessageBox.Show(e.Args.ToString()); // returns Empty Array
        MessageBox.Show(Environment.GetCommandLineArgs().ToString()); // returns Empty Array

        if (e.Args.Length == 1 && e.Args[0] == "INSTALLER")
        {
            return;
        }

        // Create main application window, starting minimized if specified
        MainWindow mainWindow = new MainWindow();
        mainWindow.WindowState = WindowState.Maximized;
        mainWindow.Show();
    }

这就是我在 CustomAction::

中传递参数的方式

#编辑:: 我正在使用简单的 VisualStudio 安装程序,生成 MSI 文件。 我想 运行 应用安装后带有一些参数

您可以重写 App.cs 中的 OnStartup 方法,它以 StartupEventArgs 作为参数。 然后只需使用 startupEventArgs.Args 获取命令行参数,如下所示:

protected override void OnStartup(StartupEventArgs startupEventArgs)
{
    MessageBox.Show(startupEventArgs.Args[0].ToString());
}

如果您只是将 startupEventArgs.Args.ToString() 打印到 Messagebox,它将打印 System.String[]。这只是数组的数据类型,但这并不意味着它是空的。尝试使用索引访问它或打印 startupEventArgs.Args.Length