Установщик - Настройка проекта в VS 2015 - PullRequest
1 голос
/ 08 июня 2019

Я работаю над оконным приложением (например, калькулятором) в VS2015.Я создал файл установки для этого приложения, которое установит приложение на ПК.Можем ли мы написать код внутри проекта установки (например, добавить новый файл .cs или что-то в этом роде), потому что я пытаюсь создать свой собственный ключ продукта (специальный ключ), специфичный для каждого ПК?Кроме того, этот код должен запускаться при первой установке продукта на рабочем столе, запрашивая ключ продукта у пользователя.После установки оконного приложения любой код, написанный в основном проекте (калькулятор, а не в проекте установки), должен выполняться только.

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

1 Ответ

0 голосов
/ 08 июня 2019

Приложение, первый запуск : Многие разработчики, как правило, рекомендуют включать лицензирование в само приложение - при первом запуске. Есть много причин, и вот попытка объяснения: Установщик с онлайн-регистрацией для приложения Windows .

Настраиваемые действия : Настраиваемые действия используются для выполнения необычных или запатентованных действий в установках MSI. Пользовательские действия легендарны тем, что их очень трудно получить правильно и надежно из-за общей сложности MSI и сложности развертывания в целом (раздел "The Complexity of Deployment") , По существу пользовательские действия являются сложными с sequencing-, conditioning- и impersonation issues и в целом poor debugability.

Итог : Когда вы реализуете логику в коде запуска своего приложения, вы находитесь на знакомой территории, не испытывая трудностей с имитацией или отладкой. Намного легче развиваться. Гораздо проще отлаживать и поддерживать.

Лицензирование для каждого пользователя : проблема заключается в том, что ваше приложение должно выполнять запись в HKCU или в профиль пользователя - если только оно не запущено с повышенными правами администратора. Я предпочитаю, чтобы лицензирование выполнялось для каждого пользователя, потенциально позволяя лицензии перемещаться вместе с пользователем. Или использовать подход онлайн-лицензирования с лицензированием, установленным один раз по беспроводной сети. Например, путем входа в приложение. Вы входите в онлайн-сервис, и все лицензии являются частью этого.

P.S .: Можно применить изменения ACL к HKLM, позволяя приложению без повышенных прав записать лицензионный ключ в HKLM. Возможно, не рекомендация.

...