Проблемы файла манифеста приложения Delphi под WinXP и Win7

Мой последний вопрос "Сервис списка и сервисное состояние под Win 7" заставил меня начать работать над решением, которое дает моему приложению административные привилегии под Windows Vista вперед на основе .manifest файла.

Я не был уверен в, продолжают предыдущий вопрос с этим вопросом, так как они не то же, таким образом, вот другой вопрос:

Мое приложение теперь хорошо работает под Win 7, выполняю ли я его "как администратор" из-за файла манифеста. Мой файл манифеста следующие:


 
  
  Powershield Service Monitor
  
   
    
     
    
   
  
 

Когда выполнение приложения на окнах 7 или Vista, контроль учётных записей идет с диалоговым окном как это: сопроводительный текст http://www.freeimagehosting.net/uploads/39787fd3dd.jpg

Как я могу заменить "незнать" издателя?

Другая и самая большая проблема, даже Вы выполнение приложения без проблемы под Win7 или Vista, под WinXP, который это теперь разрушает с сообщением: "Этому приложению не удалось запуститься, потому что конфигурация приложения является неправильной. Переустановка приложения может решить эту проблему".

Другая вещь я хотел бы добавить: Если я добавляю ссылку (пункт использования) XPMan, приложение хорошо работает на WinXP, но затем это мой .manifest файл не имеет значения в соответствии с Vista или Win7.

5
задан ronaldosantana 6 April 2010 в 23:22
поделиться

3 ответа

Я должен всех поблагодарить что, с комментариями или ответами, я должен продолжать копать ... :) Я пошел искать файл WindowsXP.res. Содержимое этого файла:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    type="win32"
    name="DelphiApplication"
    version="1.0.0.0" 
    processorArchitecture="*"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
</assembly>

Решение: Я смешал свой файл .manifest с файлом WindowsXP.Res xml, добавив раздел dependency . Если кто-нибудь знает, почему он сейчас работает, я был бы рад услышать об этом, но это было решение здесь - протестировано на паре виртуальных машин, на моем компьютере и паре других ... работает :)

12
ответ дан 18 December 2019 в 06:34
поделиться

Вам необходимо подписать свой код сертификатом подписи кода. Здесь должно быть много примеров. Я повторно пометил ваш вопрос тегом «подпись кода», и вы также можете найти «сертификат».
Я сам использую сертификаты Comodo и подписываю их с помощью потрясающей, замечательной Visual Build Pro v6, которая является рекламодателем здесь, на SO.

8
ответ дан 18 December 2019 в 06:34
поделиться

В манифесте также можно указать совместимость с различными версиями Windows. Я знаю, что есть записи о совместимости с Vista и Win7; не уверен насчет XP.

Информация о разделе совместимости манифеста доступна на MSDN . Это также может помочь - со страницы, на которую имеется ссылка:

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
3
ответ дан 18 December 2019 в 06:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: