Загрузчик установщика Windows - разрешения - PullRequest
4 голосов
/ 25 октября 2011

У меня есть пользовательские загрузчики для SQL Server 2008 R2, .NET Framework 3.5, .NET Framework 4 и т. Д. Я использую проект развертывания Visual STudio 2010 для развертывания приложения .NET 4.Я знаю, что они исчезают.

Есть ли способ, которым я могу указать загрузчик для сбоя, если у пользователя нет определенных привилегий Windows?Программа установки SQL Server, похоже, сама позаботится об этом, но выдает очень загадочные коды ошибок и тексты, которые сложно отследить пользователям.Я знаю, что могу установить обходные пути для версий Windows, и SqlCheck.exe выполняет какую-то проверку версий.Придется ли мне создавать собственное приложение, которое проверяет разрешения пользователя, и загрузчик может проверить код возврата этого, аналогично SqlCheck.exe?

Можно ли это сделать с помощью генератора манифеста Bootstrapper, и этоBMG даже поддерживается Visual Studio 2010?Кажется, больше не поддерживается, но я не уверен, есть ли что-то конкретное для VS 2010 / Windows Installer 4.5 http://archive.msdn.microsoft.com/bmg

1 Ответ

0 голосов
/ 25 октября 2011

Максимум, что вы можете сделать со стандартным загрузчиком Visual Studio, - это проверить значение свойства AdminUser . В предопределенном предварительном условии профиля клиента .NET Framework 4.0 используется аналогичное условие. Вы можете найти его манифест в этой папке:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX40Client

Это также должно поддерживаться генератором манифеста загрузчика.

Но, и это очень важно, в новых версиях Windows все пользователи могут получить права администратора через повышение прав. Таким образом, с точки зрения установщика, любой пользователь считается администратором, даже если это не так.

Так что этот подход в значительной степени бесполезен в Vista или выше.

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

По моему опыту, лучший подход - позволить каждому установщику поднять себя, если это необходимо. Большинство из них имеют встроенные механизмы для этого, особенно от Microsoft.

Если вы столкнулись с проблемами при таком подходе, я почти уверен, что они не вызваны привилегиями. Скорее всего, ваше предварительное условие настроено неправильно (например, неверная командная строка).

...