ClickOnce - отличный инструмент. Однако вы должны знать, что у него есть некоторые ограничения, прежде чем принимать решение.
- Он не позволяет вам выбирать, где установлены приложения. Он устанавливает их в запутанном месте под профилем пользователя. Да, это означает, что приложения ClickOnce загружаются и устанавливаются для пользователя , а не для компьютера .
- Он просто синхронизирует файлы на компьютере пользователя с файлами на сервере, не более того. Вы не можете устанавливать сторонние msi-файлы, регистрировать dll, устанавливать сборки в GAC и т. Д.
Есть и другие предостережения, но эти два являются большими для большинства людей. Если вы можете обойти это, то ClickOnce может быть вариантом для вас.
Когда я попробую, я просто опубликую ваше приложение из Visual Studio и использую самоконтроль. Если вы решите использовать ClickOnce, вы, вероятно, захотите использовать MSBuild или MageUI для генерации своих развертываний, и вы можете захотеть купить сертификат подписи кода в центре сертификации (например, Verisign).
Редактировать
Просто хотел ответить на комментарий @Richard Dunlap. Он верен, вы можете указать предварительные требования в Visual Studio, и он создаст загрузчик для вас. Загрузчик избавляет пользователя от необходимости загружать ваши предварительные требования по отдельности, запускать их в правильном порядке и т. Д.
Однако , это в основном просто функция, которую предоставляет VS, и, IMO, она отделена от ClickOnce. ClickOnce ограничивается проверкой наличия сборки в GAC и последующей неудачной установкой, если это не так. На самом деле нет никакой связи между вашим загрузчиком и вашей установкой ClickOnce. Вы в значительной степени должны сказать пользователю: «Если у вас нет продукта x, y или z, пожалуйста, запустите эту программу начальной загрузки, прежде чем пытаться установить мое приложение». ClickOnce ничего не может сделать, чтобы проверить какой-либо сторонний COM-продукт и заставить пользователя установить его перед запуском приложения.