2013-10-30 12 views
10

Dies funktioniert in VS2010 und VS2012. Aber in VS2013 Anwendung (durch Drücken von "Run" oder F5) beginnt nur mit den Rechten meines Benutzers und kann nicht auf einige Ressourcen zugreifen (ich verwende HttpListener).Manifest erzwingt nicht, dass Visual Studio 2013 unter Admin neu gestartet wird, wenn eine Anwendung im Debug-Modus ausgeführt wird

Ich habe versucht, Google, versucht, neue Manifest zu generieren, kopiert es Inhalt von MSDN, aber nichts half. Hat sich etwas in diesem Teil von VS2013 geändert?

Update1:
Das war ein Teil. Hier ist komplett manifesten Inhalt:

<?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 hier ist einfaches Beispiel: Wenn ich kompiliert laufen Exe-Datei UAC fordert Admin-Rechte. Aber wenn ich es von VS2013 (durch Drücken von "Run" oder F5) läuft es nicht! Und wenn Sie das gleiche Projekt mit VS2012/VS2010 öffnen, fragen sie unter Admin neu zu starten.
Sie können dies schnell überprüfen:
Konsolenanwendung erstellen in VS2013, fügen Sie manifestieren und setzen level = "requireAdministrator". Führen Sie dann oder drücken Sie F5 (VS2013 führt die Anwendung unter Admin, wenn Sie drücken Ctrl-F5).
Aber das ist nicht das Verhalten von VS2012/VS2010!
Wie können wir das alte Verhalten bekommen?

Update3:
Bitte stimmen here oder informieren Sie mich über ein anderes Ticket.

+0

Das habe ich heute auch schon bemerkt. Ich konnte keine Informationen darüber finden. Für jetzt starte ich gerade VS 2013 als Verwalter, aber es wäre definitiv nett, das alte Verhalten zurückzubringen, so dass ich mich nicht daran erinnern muss, es selbst zu machen. – Deke

+0

Das gleiche Problem auch hier. Wenn ich die Lösung mit VS2012 starte, fragt es nach einem Neustart. Also ist mein Manifest gut. – JimDel

Antwort

14

Sie müssen den Hostprozess Option zum Deaktivieren des VS Neustart Prompt zu erhalten . Deaktivieren Sie das Kontrollkästchen "Visual Studio-Hosting-Prozess aktivieren". Es kann einfacher sein, VS sofort zu starten. Klicken Sie mit der rechten Maustaste auf die Verknüpfung Als Administrator ausführen.

Nicht ganz sicher, ob dies ein Fehler oder eine Funktion ist.Achten Sie auf this Connect report, um mehr zu erfahren.


Update: sieht wie ein Fehler aus, der Feedback-Bericht wurde als "behoben" geschlossen. Leider gibt es keinen Hinweis darauf, wann diese Lösung unsere Maschinen machen wird. Vielleicht ein zukünftiges VS2013 Update, sicherlich die nächste Version.
Update2: Das Update machte es in VS2013 Update 3.

+0

Danke! Hier ist der Code: XmlElement useVSHostingProcessElement = doc.CreateElement ("UseVSHostingProcess", NS); useVSHostingProcessElement.InnerText = "false"; el.AppendChild (useVSHostingProcessElement); –

1

Ich hoffe, dass wird bald behoben ™ In der Zwischenzeit können Sie praktische Verknüpfungen für den Neustart von VS im Admin-Modus verwenden, schauen Sie "Visual Studio Restart" in der Erweiterung Galerie.

Edit:

Nur so kann ich sehen Sie das alte Verhalten VS-Hosting-Prozess auszuschalten erreichen können, ist, wie es dieser Prozess ist, der aus irgendeinem Grund die Anhebungsaufforderung „frisst“. Eigentlich, wenn ich darüber nachdenke, könnte dieses Verhalten sogar von Entwurf sein. Sie können Hosting-Prozess in Projekteigenschaften (Debug) ausschalten oder wenn Sie generieren CSPROJ Plattformkonfiguration UseVSHostingProcess Tag auf false gesetzt, etwa so:

<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> 
+0

Unser Szenario ist das nächste: Benutzer installiert unsere Engine, führt VS aus und generiert ein neues HttpListener-basiertes Projekt mit Hilfe unseres Assistenten. Dann startet er das Projekt und VS bittet darum, im Admin-Modus neu zu starten. –

+0

Kannst du meinen Beitrag vielleicht als Antwort markieren, während ich gezeigt habe, wie das alte Verhalten (mit minimalen Nebenwirkungen) vor allen anderen in diesem Thread repliziert werden kann (einschließlich der Bearbeitung)? – Nemo

2

Was ich am Ende getan habe, ist ich das Projekt ohne Debugging CRTL+F5 ausführen. Das gibt mir die gleiche Aufforderung, die Visual Studio 2010 Ihnen gibt.

Verwandte Themen