Это работало в VS2010 и VS2012. Но в VS2013 приложение (нажав "Запуск" или F5) только начинается с моих прав пользователя и не может получить доступ к некоторым ресурсам (я использую HttpListener).
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
Я попытался Google, попытался создать новый манифест, скопировал его содержимое из MSDN, но ничего не помогло. Что-то изменилось в этой части VS2013?
Update1:
Это было частью. Вот полный манифестовый контент:
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<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="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application></application>
</compatibility>
</asmv1:assembly>
Update2:
Okey здесь - простой пример: когда я запускаю скомпилированный .exe файл, UAC запрашивает права администратора. Но когда я запускаю его из VS2013 (нажимая "Run" или F5), это не так! И если вы откроете тот же проект с VS2012/VS2010, они попросят перезапустить его под управлением.
Вы можете проверить это быстро:
Создайте консольное приложение в VS2013, добавьте манифест и установите level = "requireAdministrator" . Затем запустите или нажмите F5 (VS2013 запускает приложение под управлением администратора, когда нажимает Ctrl-F5).
Но это не поведение VS2012/VS2010!
Как мы можем получить старое поведение?
Update3:
Пожалуйста, проголосуйте здесь или сообщите мне о другом билете.