Манифест не заставляет Visual Studio 2013 перезапускаться под Администратором при запуске приложения в режиме отладки - программирование

Манифест не заставляет Visual Studio 2013 перезапускаться под Администратором при запуске приложения в режиме отладки

Это работало в 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:
Пожалуйста, проголосуйте здесь или сообщите мне о другом билете.

4b9b3361

Ответ 1

Вам нужно отключить параметр хостинга, чтобы получить приглашение перезагрузки VS. Project + Properties, Debug, отключите флажок "Включить хостинг Visual Studio". Это может быть проще просто начать VS поднял сразу. Щелкните правой кнопкой мыши ярлык "Запуск от имени администратора".

Не совсем уверен, что это ошибка или функция. Следите за этим сообщением Connect, чтобы узнать больше.


Обновление: выглядит как ошибка, отчет обратной связи закрыт как "фиксированный". К сожалению, это не дает никаких намеков, когда это исправление сделает наши машины. Возможно, будущее обновление VS2013, безусловно, следующая версия.
Update2: исправление превратилось в обновление VS2013 3.

Ответ 2

То, что я закончил, - это запуск проекта без отладки CRTL+F5. Это дает мне ту же подсказку, что и Visual Studio 2010.

Ответ 3

Я надеюсь, что скоро это будет исправлено ™ В то же время вы можете использовать удобные ярлыки для перезапуска VS в режиме администратора, посмотрите "Перезагрузка Visual Studio" в галерее расширений.

Edit:

Только так, как я вижу, вы можете достичь старого поведения - это отключить процесс VS VS, поскольку именно этот процесс почему-то "ест" подсказку о высоте. Фактически, когда я думаю об этом, это поведение может быть даже по дизайну. Вы можете отключить процесс хостинга в свойствах проекта (Debug) или при создании .csproj установить конфигурацию платформы UseVSHostingProcess на false, например:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <UseVSHostingProcess>false</UseVSHostingProcess>
</PropertyGroup>