WPF应用程序调试参数运行正常,但在CMD上被忽略



我有一个WPF应用程序,它需要获得一个参数来选择它必须显示的屏幕。当我在"项目右键单击->属性->调试"上使用"命令行参数"功能时,它就像一个魅力。当我发布应用程序并尝试使用CMD传递参数时,问题就会出现,因为它被完全忽略了。这是代码:App.xaml.cs类

private void Application_Startup(object sender, StartupEventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
log.Debug("Paramerters: " + e.Args.Length);
foreach (var parameter in e.Args )
{
log.Debug("Arg " + parameter);
}
var screen = 0;
if (e.Args.Length > 0)
{
if(Int32.TryParse(e.Args[0], out screen))
{
log.Debug("Parameter: " + screen);
} else
{
log.Debug("Invalid parameter : " + e.Args[0]);
}
}
log.Debug("Screen: " + screen);
App.Current.Properties["Screen"] = screen;
log.Debug("Screens count: " + System.Windows.Forms.Screen.AllScreens.Length);
if (screen >= System.Windows.Forms.Screen.AllScreens.Length)
{
log.Debug("Error screens count: " + System.Windows.Forms.Screen.AllScreens.Length);
App.Current.Shutdown();
}
else
{
var screen1 = App.Current.Properties["Screen"];
MainWindow mainWindow = new MainWindow();
var screenBounds = System.Windows.Forms.Screen.AllScreens[screen].Bounds;
mainWindow.Left = screenBounds.Left;
mainWindow.Top = screenBounds.Top;
mainWindow.Show();
mainWindow.WindowState = WindowState.Maximized;
}
}

我是不是错过了什么?我正在使用下一行来启动应用程序(它确实启动了,但参数始终是默认值(:AppName 1此外,我肯定有不止一个屏幕。

使用日志输出进行编辑:

2018-10-31 12:42:20366[1]调试应用程序-参数:0

2018-10-31 12:42:20396[1]调试应用程序-屏幕:0

2018-10-31 12:42:20401[1]调试应用程序-屏幕计数:2

好的,所以使用对应用程序的引用似乎不起作用。我已经找到了应用程序的完整路径,它确实有效。它应该类似于:C: \Users\SMACS\AppData\Local\Apps\2.0\MMA17POZ.R0G\PHXLDOK5.2Y8\pane..tion_d85c1227db19dafd_001.0000_ae3906090ab02453

相关内容

最新更新