Как получить командную строку из приложения ClickOnce? - PullRequest
10 голосов
/ 05 января 2011

Перед публикацией я зашел в Project -> Properties -> Options -> File Associations и добавил расширение ".hsp". Установите значок и ProgID («MyCompany.Document.1» для тестирования). После того, как я опубликовал и установил, у моих файлов .hsp был установлен значок, поэтому связь с файлами должна быть правильно установлена, но когда я дважды щелкнул один из этих файлов, приложение запустилось, и я ожидал, что имя файла, который я дважды щелкнул в командной строке. Я попытался прочитать параметр, переданный моей функции Main, попытался Environment.CommandLine и попытался Environment.GetCommandLineArgs(), но единственное, что я нашел, был путь к приложению. Кстати, я делаю всю эту проверку перед созданием моей основной формы в функции Main, просто для тестирования. Параметр args пуст, а два других содержат только путь моего приложения.

Это начало моей Main функции:

    static void Main(string[] args)
    {
        try
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
            MessageBox.Show("CommandLine -> " + Environment.CommandLine);
            foreach (string str in args) MessageBox.Show("args -> " + str);
            foreach (string str in Environment.GetCommandLineArgs()) MessageBox.Show("GetCommandLineArgs -> " + str);

1 Ответ

9 голосов
/ 05 января 2011

Когда вы публикуете приложение с ClickOnce, а затем запускаете его, дважды щелкнув соответствующий файл, путь к этому файлу фактически сохраняется здесь:

AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]

См. Документацию MSDN здесь:

http://msdn.microsoft.com/en-us/library/system.runtime.hosting.activationarguments.aspx

Плюс учебник по добавлению ассоциаций файлов в "Опубликованные" проекты:

http://blogs.msdn.com/b/mwade/archive/2008/01/30/how-to-add-file-associations-to-a-clickonce-application.aspx

...