У меня есть 32-битное приложение, над которым я работаю .NET 3.5; VS2010 - это мой инструмент разработки. Моему приложению требуются повышенные привилегии для множества вещей, поэтому у меня есть манифест приложения, в котором есть следующая строка:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Поскольку это правильно, в манифесте также есть строки, которые указывают, что приложение совместимо с Windows 7 и Windows Vista:
<!--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}"/>
Приложение отлично работает на Windows 7 и Windows Vista. Он сразу же выдает приглашение UAC, на него не влияют виртуализация реестра и т. Д. Манифест явно работает там.
Однако в 2008 R2 ни одна из этих вещей не является правдой. UAC подсказка не появляется. Виртуализация реестра происходит (моя основная проблема). Как будто он полностью игнорирует мой манифест приложения. Я понятия не имею, где искать или что проверить. Я выполнил те же самые биты на 7, Vista и 2008 R2 и каждый раз получал одинаковые результаты. Моя установка 2008 R2 полностью ванильна, так как это просто недавно установленная виртуальная машина для тестирования.
Кроме того, я вполне уверен, что Server 2008 работает так же, как 2008 R2, в основном игнорируя манифест. Любая помощь будет принята с благодарностью!