我有一个WPF
应用程序,并使用ClickOnce进行部署。
在这个应用程序中,有一个按钮,用于重新启动带参数的应用程序..
代码:
System.Diagnostics.Process.Start(Application.ResourceAssembly.Location, arg);
if (Application.Current != null)
Application.Current.Shutdown();
但我发现有时属性没有初始化正确,所以在搜索解决方案后 - 我读到了这个:http://blachniet.com/2012/10/20/how-not-to-restart-a-clickonce-application/
阅读后 - 我改变如下:
System.Windows.Forms.Application.Restart();
if (Application.Current != null)
Application.Current.Shutdown();
但是现在 - 我有问题 - 应用程序的重启方法 - 不接受传递参数.. 如何才能通过参数重新启动?
感谢。
答案 0 :(得分:1)
以下是我如何使用参数重新启动ClickOnce应用程序:
var launchUri = "http://yourwebsite.com/yourapp/YourApp.application"
Process.Start(“rundll32.exe”, String.Format(“dfshim.dll,ShOpenVerbApplication {0}?Arg1={1}&Arg2={2}&Arg3={3}”, launchUri, arg1Value, arg2Value, arg3Value));
你的论点是Arg1,Arg2和Arg3。
启动应用程序时,您必须自己解析URI中的args。 URI可在此处获取:
var launchUri = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0];