调试 ClickOnce 应用程序并传递启动命令参数
Debugging a ClickOnce application and passing startup command parameters
在传统的 WinForms 应用程序中,您可以通过项目设置的调试部分传递命令行参数。当您想在 运行 应用程序 Visual Studio 中测试各种启动参数时,这非常有用。
对于 ClickOnce 应用程序,我的理解是 URL 参数是从 AppDomain.CurrentDomain.SetupInformation.ActivationArguments 中提取的。但是,命令行参数部分将被忽略。所以我的问题是,如何传递在应用程序启动过程中从 AppDomain.CurrentDomain.SetupInformation.ActivationArguments 检索到的 URL 查询。目前我有一个应用程序,如果传递的 URL 为空,它会立即退出。所以你可以想象,这让 development/testing 有点困难。
我不认为真的有办法做你想做的事。
如果你想做这样的事情,请尝试使用:
#if DEBUG
//Code goes here
#endif
如果当前版本设置为 "Debug",此代码将仅为 运行。
如果你愿意,你可以通过项目设置使用正常的 Command-Line-Arguments 并通过以下方式访问它们:
Environment.GetCommandLineArgs();
或者如果你在 main 方法中(例如 App.Xaml.cs 在 Application_Startup 中)你可以这样做:
e.Args //or something similar
希望对您有所帮助。
在传统的 WinForms 应用程序中,您可以通过项目设置的调试部分传递命令行参数。当您想在 运行 应用程序 Visual Studio 中测试各种启动参数时,这非常有用。
对于 ClickOnce 应用程序,我的理解是 URL 参数是从 AppDomain.CurrentDomain.SetupInformation.ActivationArguments 中提取的。但是,命令行参数部分将被忽略。所以我的问题是,如何传递在应用程序启动过程中从 AppDomain.CurrentDomain.SetupInformation.ActivationArguments 检索到的 URL 查询。目前我有一个应用程序,如果传递的 URL 为空,它会立即退出。所以你可以想象,这让 development/testing 有点困难。
我不认为真的有办法做你想做的事。 如果你想做这样的事情,请尝试使用:
#if DEBUG
//Code goes here
#endif
如果当前版本设置为 "Debug",此代码将仅为 运行。 如果你愿意,你可以通过项目设置使用正常的 Command-Line-Arguments 并通过以下方式访问它们:
Environment.GetCommandLineArgs();
或者如果你在 main 方法中(例如 App.Xaml.cs 在 Application_Startup 中)你可以这样做:
e.Args //or something similar
希望对您有所帮助。