Как добавить ярлык в проект установки VS2010, который не переоценивает установленные файлы - PullRequest
1 голос
/ 06 июня 2011

Ситуация : у меня есть приложение Windows Desktop, которое подключается к различным службам (по одному) для выполнения различных вызовов. Мое приложение работает одинаково независимо от того, к какому сервису оно подключается. К какому сервису он должен подключиться в любое время, определено в файле application.config.

Чтобы переключаться между службами, я создал пару оконных .bat-файлов, каждый из которых заменяет существующий .config-файл новым (конечная точка службы) для использования.

Для всего этого я создал установщик (MSI, использующий шаблон «Проект установки» в Visual Studio 2010). Этот установщик также создает ярлыки для:

  1. само приложение
  2. первый файл .bat (который устанавливает файл конфигурации с конечной точкой службы «по умолчанию»)
  3. второй .bat файл. (который заменяет конфигурационный файл альтернативным)

Проблема : Каждый раз, когда я запускаю любой из них (приложение или файлы bat) с помощью ярлыков, они, кажется, «переоценивают» установленные файлы перед тем, как на самом деле запустить цель. Это не проблема, если я использую файл .config по умолчанию, так как он был установлен. Однако, если я запустил второй файл .bat и пытаюсь запустить приложение, чтобы оно подключалось ко второму сервису, то запуск приложения с помощью ярлыка приводит к возврату .config-файла, и в итоге я подключаюсь к первый сервис вместо.

Я могу создать свои собственные ярлыки вручную, как для файлов .bat, так и для самого приложения, и они отлично работают. Однако я бы хотел, чтобы это происходило автоматически, не внося никаких изменений в другие файлы.

Благодарим за любую идею! Заранее спасибо,
-Kjartan

Ответы [ 2 ]

1 голос
/ 06 июня 2011

Ваш проект развертывания имеет так называемый "рекламируемый ярлык".Есть несколько способов отключить их, см. Следующую ссылку:

http://social.msdn.microsoft.com/Forums/en/vssetup/thread/b57f1d84-9b0c-4c29-b140-0555f92ffed8

0 голосов
/ 14 июня 2011

Спасибо, Джордж.Это немного раздражало, и я удивлен, что не представляется хорошим способом отключить это по умолчанию.Думаю, что я поделюсь решением, которое мы использовали в конце, даже если оно не идеально: мы запустим установщик из командной строки со следующим параметром, таким образом, генерируя «нормальные» ярлыки.

Setup.exe DISABLEADVTSHORTCUTS = 1

Это означает, что мы не можем позволить нашим пользователям устанавливать приложение, как обычно, простым двойным щелчком мыши.Это, однако, означает, что нам (программистам) не придется редактировать сгенерированный установщик, используя какой-либо внешний инструмент, каждый раз, когда мы делаем новое развертывание;приемлемый компромисс, поскольку это только внутреннее приложение.

Еще раз спасибо,-Kjartan

...