В VS 2017, когда вы ничего не меняете в приложении C # или C ++ (Windows Desktop), оно будет встраивать Манифест приложения по умолчанию в результирующий исполняемый файл.
У нас есть несколько приложений C #, которые встраиваютПользовательский файл манифеста, переопределяющий по умолчанию.Мне теперь любопытно, что должны ли две настройки из значений по умолчанию, assemblyIdentity
и requestedExecutionLevel
, быть в "нормальном" исполняемом приложении для рабочего стола Windows? И какие значения по умолчанию/ подразумевается, если они отсутствуют.
- Наши приложения не не включают эти settigs в свои основные модули, и они отлично работают Win7 - Win10.
- MS документы чисты как грязь.
В качестве справки вот что я получаю из шаблонов проекта VS по умолчанию для C # / C ++ Windows Desktop Application:
Извлекается с помощью: mt.exe -inputresource:xzy.exe;#1 -out:xyz.extracted.manifest-#1.xml
Для C # я получаю:
<?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" name="MyApplication.app"></assemblyIdentity>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Для C ++ я получаю:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>