Предварительные условия проверки и установки C # - PullRequest
3 голосов
/ 29 октября 2010

Я разработал специальное приложение для установки, потому что проекты установки Visual Studio недостаточно настраиваемы, чтобы соответствовать моим потребностям.Я разработал валидатор и установщик необходимых компонентов, таких как .NET Framework, SQL Server, но я не могу запустить некоторые исполняемые файлы, например, из .NET Framework, с помощью Process.Start.

Интересно узнать, есть лиЭто пользовательский валидатор и установщик для предварительных условий или способ установки и проверки предварительных условий, отличный от собственной разработки:).

Заранее спасибо.
Пауло

Ответы [ 2 ]

0 голосов
/ 18 мая 2014

Почему именно Process.Start () у вас не работает?В отсутствие этих знаний я могу описать только ситуацию, с которой я столкнулся при попытке запустить установщик .NET.

Если появляется диалоговое окно UAC , запрашивающее права администратора,нет способа избежать требования вашего пользователя, чтобы нажать на него.Любой процесс установки без повышенных прав, в том числе профессиональное стороннее решение, сталкивается с диалоговым окном UAC при попытке запустить установщик .NET.Это связано с тем, что для установки .NET требуется маркер администратора с повышенными правами.Вы не можете обойти это.

Я столкнулся с фоновым диалогом UAC .Он будет тихо мигать и будет игнорироваться пользователями, которые, вероятно, думают, что установщик завис, и полностью отказались от него.Я просто провел 2 недели, работая над этим вопросом.Это произошло только в том случае, если пользователь щелкнул за пределами окна установщика между запуском установщика и появлением диалогового окна UAC.Это заставляет Windows думать, что пользователь хочет работать над чем-то другим, и сохраняет окно, в котором он щелкнул, активным.Windows спроектирована так, чтобы запретить «кражу фокуса», поэтому нет никаких официальных способов «вернуть себе» фокус для вашего окна (т. Е. Для диалога UAC, в котором запущен ваш процесс).

Можно с уверенностью предположить, чтоОкно, на которое щелкают пользователи, не принадлежит вам, поэтому официальные методы Windows (при этом окно с фокусом дает разрешение вашему процессу захватить фокус) не будут работать в этой ситуации.Вот где было бы неплохо, если бы msiexec.exe мог поддерживать свои окна на верхнем уровне.

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

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

Изменение IDE для установки , как предложил другой пользователь, независимо от того, насколько хороша целевая IDE, это большаяшаг.И поскольку я не могу рекомендовать использовать Visual Studio для разработки файлов MSI, я бы подумал о переходе на другую IDE, только если вы продолжите сталкиваться с проблемами при выполнении того, что вы хотите достичь.Однако до сих пор вы описали только локализованную проблему, которую нужно решить, и ту, которая не может быть решена с помощью другого инструмента.

0 голосов
/ 29 октября 2010

Я настоятельно рекомендую вам взглянуть на http://nsis.sourceforge.net/Main_Page. Это инструмент установки с открытым исходным кодом, который я использовал именно для тех задач, которые вы ищете, и имеет значительное сообщество.

...