Как используются данные, указанные в манифесте приложения? - PullRequest
3 голосов
/ 21 декабря 2008

Я обновляю неуправляемое приложение C ++ для использования общих элементов управления в стиле XP / Vista путем добавления манифеста. Согласно странице MSDN на манифестах приложения , вам необходимо указать имя и версию в манифесте и, при необходимости, описание:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity
        version="1.2.3.4"
        processorArchitecture="*"
        name="CompanyName.ApplicationName"
        type="win32"
    />
    <description>Application's description here</description>
</assembly>

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

Как влияет их изменение? Стоит ли обновлять версию?

Ответы [ 2 ]

0 голосов
/ 04 августа 2010

Я бы сказал, стоит держать их в курсе. Если только по какой-то другой причине вы не знаете, какие будущие инструменты могут появиться, используйте их. Мне неизвестны какие-либо текущие варианты использования имени сборки, версии и т. Д., Указанного в манифесте нативного приложения. Чтобы заполнить страницу свойств в XP, вам нужно создать раздел VERSIONINFO в своих ресурсах.

0 голосов
/ 21 декабря 2008

Для общих элементов управления для использования тем XP / Vista в приложении C ++, которое не связывает манифест в (например, приложения Visual C ++ 6), можно использовать следующий шаблон:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity
        version="1.0.0.0"
        processorArchitecture="X86"
        name="Program Name"
        type="win32"
    />
    <description>Description of Program</description>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Microsoft.Windows.Common-Controls"
                version="6.0.0.0"
                processorArchitecture="X86"
                publicKeyToken="6595b64144ccf1df"
                language="*"
            />
        </dependentAssembly>
    </dependency>
</assembly>
...