Аргумент ClickOnce appref.ms - PullRequest
3 голосов
/ 17 февраля 2009

У меня есть приложение ClickOnce, которое доступно онлайн или офлайн. Программа принимает аргумент. Когда я в сети, я передаю аргумент по URL-адресу примерно так: «URL-аргумент», и он работает хорошо. В автономном режиме я запускаю процесс со ссылкой на приложение startmenu.

Можно ли передать аргумент моему приложению по этой ссылке? Я думаю, я мог бы как-то определить местоположение файла приложения, но есть ли альтернатива?

Ответы [ 3 ]

8 голосов
/ 24 июня 2010

Мне удалось заставить это работать, сославшись на приложение как «% userprofile% \ Desktop \ Ваше имя ярлыка здесь.appref-ms»

Затем, чтобы передать пармы, передайте их как один, без пробела, как это: arg1, arg2, arg3

В командной строке все выглядит так:

"%userprofile%\Desktop\Your Shortcut Name Here.appref-ms" arg1,arg2,arg3

Тогда в вашем коде используйте

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

чтобы получить аргументы.

Я только что написал об этом вчера: http://www.developingfor.net/net/processing-command-line-arguments-in-an-offline-clickonce-application.html

2 голосов
/ 09 июня 2010

Вы можете передавать аргументы автономному приложению ClickOnce. Я бы просто создал ярлык, который указывает на ярлык ClickOnce и добавляет аргументы в конце. Нажмите здесь , чтобы прочитать статью о том, как передавать и обрабатывать аргументы для автономного приложения ClickOnce.

1 голос
/ 18 февраля 2009

Нет, вы не можете передавать аргументы из ярлыка меню Пуск. Если вы найдете способ, дайте мне знать, потому что я пытался сделать это в течение длительного времени:).

Вот как я решаю проблему в моей ситуации ...

Если свойство ActivationUri имеет значение , а не null, приложение было запущено из браузера и передавало аргументы через строку запроса (как вы описали).

Если ActivationUri равно null, приложение запускалось из меню «Пуск». В этих случаях я получаю аргументы из файла конфигурации, развернутого вместе с приложением.

Какой тип информации передается с вашим аргументом? Это было бы полезно для определения того, как вы должны хранить свои аргументы (app.config, настройки приложения, настройки пользователя, изолированное хранилище и т. Д.)

Примечание на стороне
Я думал, что что-то хотел, сделав свое приложение «единичным экземпляром» и попытавшись обработать событие приложения StartupNextInstance, но не повезло. Таким способом можно получить только традиционные параметры командной строки, а не параметры строки запроса ClickOnce.

...