У меня есть приложение WinForms .NET, которое, согласно диспетчеру задач Vista с включенным UAC, работает с виртуализацией «Отключено», хотя я не припоминаю добавления манифеста с «asInvoker» в приложение. VS.NET (этот проект прошел все четыре версии VS.NET) должен был добавить файл \ Properties \ app.manifest , который я вижу в обозревателе решений, но этот файл не содержит Элемент trustinfo Я бы ожидал отключить виртуализацию. Поэтому я запустил Reflector, чтобы посмотреть, что может быть встроено в мой фактический исполняемый файл, но я не могу найти файл app.manifest. Должен ли я найти манифест или его признаки в исполняемом файле? В соответствии с VS 2008, действие сборки - BaseApplicationManifest , но означает ли это, что оно не встроено в exableable? Может ли кто-нибудь объяснить, почему мое приложение работает с отключенной виртуализацией, если я об этом не просил, и, однажды объяснив, может ли кто-нибудь указать мне, где я могу найти артефакт, вызывающий это в моем приложении через Reflector?
В качестве продолжения моего приложения app.manifest, который знает, как долго, оно заполнено всеми видами IP-разрешений, которые, я не уверен, мне больше нужны. Что добавляет содержимое в этот файл и может ли оно содержать разрешения, которые мне больше не нужны? Это должно быть сокращено или управляемо? Я должен явно добавить trustinfo к этому? Я думаю, app.manifest - это просто загадка, о которой мне нужно узнать больше.
Обновление: Из этой статьи я узнал, что могу использовать утилиту SysInternals / Microsoft Sigcheck для просмотра следующей информации, но я не знаю, как мое приложение было подписано с MyApplication .приложение. Где это происходит в процессе сборки?
c:\Users\Public\Programs\SysinternalsSuite>sigcheck.exe -m ceo.exe
sigcheck v1.54 - sigcheck
Copyright (C) 2004-2008 Mark Russinovich
Sysinternals - www.sysinternals.com
"c:\Users\Public\Programs\SysinternalsSuite\ceo.exe":
Verified: Unsigned
File date: 1:47 PM 2/6/2009
Publisher: CEO Image Systems
Description: Main Menu
Product: Image Executive CEO
Version: 2.0.0.0
File version: 2.0.0.0
Manifest:
<?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"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Обновление 2: Похоже, я доберусь до конца. В VS 2008 добавлена опция Manifest на странице проекта исполняемого файла, для которой в моем проекте выбрано «Встраивать манифест с настройками по умолчанию». Так что это ответит, как оно туда попало, но как я могу увидеть это в Reflector?