Application.Restart без передачи аргументов обратно

Это приложение ClickOnce. Согласно документации , " Если вашему приложению были изначально предоставлены параметры командной строки при первом запуске, Restart снова запустит приложение с теми же параметрами. ". Но я не знаю, должно ли это работать с приложениями ClickOnce. Если да, то что я делаю не так?

Вот мой код:

public Form1()
{
    InitializeComponent();         
    textBox1.Text = string.Join(Environment.NewLine, GetCommandLineFile());
}

private static string[] GetCommandLineFile()
{
    if (AppDomain.CurrentDomain != null &&
        AppDomain.CurrentDomain.SetupInformation != null &&
        AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null &&
        AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null &&
        AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Any())
    {
        return AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData;
    }
    else return new string[] { };
}

private void button1_Click(object sender, EventArgs e)
{
    Application.Restart();
}

Я связал свое приложение с .abc , и когда я дважды щелкаю свой файл .abc , приложение запускается с именем файла в качестве единственного аргумента, но затем, когда я перезапускаю (нажав мою кнопку 1 ), GetCommandLineFile () вернет пустой массив.

6
задан Juan 7 January 2012 в 04:21
поделиться