среда, 7 октября 2009 г.

Манифест некоммунистической партии.

Категорически приветствую вас, уважаемые коллеги!

Наконец-то(!) появилось время что-нибудь черкнуть не только на языке компьютера и не для компьютера =).
Два больших и интересных проекта поглотили меня с головой. Возможно, как-нибудь расскажу и о них. Тем более, там есть о чем поведать... Но сегодня я хотел поговорить о другом. На днях столкнулся с проблемой, которая помимо ассоциации со знаменитым трудом Карла Генриха Маркса и Фридриха непоймикого Энгельса привела меня в замешательство. Есть у меня один проект, работа которого под правильными операционными системами не возможна без запроса определенных прав.
Для получения этих прав в манифесте, находящемся в ресурсах приложения, необходимо указать начальный уровень привилегий. Подробно об этом можно прочитать на MSDN или в новом блоге Александра Божко.
Надо отметить, что ранее (в D2007) особых проблем с манифестами не было, так как они добавлялись руками трудолюбивых разработчиков. Теперь же, в эпоху тотально автоматизации создатели передовой IDE решили помочь разработчикам, избавив их от рутинной работы. Тепрь D2010 сама прикрутит за вас манифест со своими параметрами, изменить которые в проекте нет никакой возможности. Прямо как в том мультфильме:
— Так вы что, и конфеты за меня есть будете?!.. — АГА!!!

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

Что ж, мы, как говориться, не ищем легких путей, да и покой нам только снится. К сожалению, FinalBuilder выдирать манифесты ещё не научился. А готовой консольной программы, которая могла бы запускаться из пакетных файлов, вырезать ресурсы и при этом корректно отдавать ExitCode, я за приемлемое время не нашел. Пришлось достать коленку, и на ней написать патчилку косяка. Вот, может быть кому-нибудь ещё пригодиться.

MD5 архива: 3abd737e5d990240b08d856f487a4b3b
MD5 ехе: 3b18c4323ec1226bbf466515c86ce1fa

Комментариев нет: