2010-11-03 6 views
14

Mam projektu z pliku manifestu z następującym węźle:Jak osadzić plik manifestu w czasie kompilacji w Visual Studio 2010

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 

... co oznacza, chcę go uruchomić tylko „jako administrator” domyślnie.

od wyszukiwanie wokół, aby tej pracy mam dwie opcje:

  1. "Umieść" to.
  2. Wdróż plik manifestu w exe i nadaj mu nazwę YourProject.exe.manifest.

Próbowałem już opcji 2, a kiedy uruchamiam moją aplikację, nie pytam o prawa administratora?

Jak więc zrobić opcję 1 w VS2010? Słyszałem o mt.exe, ale nie jest to dobre dla mnie, ponieważ jest gotowe do kompilacji. Potrzebuję opcji części rozwiązania i samego pliku projektu.

Jak to zrobić? Z chęcią wykonam 2, ale to nie działa?

+1

Jeśli tworzysz natywne aplikacje C++, to prostsze. Po prostu otwórz właściwości projektu/Linker/Plik manifestu i wybierz nową wartość dla "Poziomu egzaminu UAC". – swigger

Odpowiedz

21

W Visual Studio 2010 domyślnym ustawieniem nowego projektu jest osadzenie manifestu w aplikacji (opcja # 1). Domyślnie jest dołączony domyślny manifest. To, co musisz zrobić, to dodać niestandardowy manifest.

  • prawym przyciskiem myszy na projekt i wybrać opcję „Dodaj nowy element”
  • wybierz „Application plik manifestu”

To doda plik o nazwie app.manifest do projektu. Otwórz ten plik i modyfikować linię być następujące

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 

Powinno to również pracować w Visual Studio 2008.

+0

+1 ahh .. ok, i nie ma potrzeby, aby zmienić jej nazwę? – andy

+0

ah ha! jesteś geniuszem! Twoje zdrowie! – andy

+7

Nie mogę znaleźć pliku manifestu aplikacji wśród szablonów. Która kategoria (kod, dane, ogólne itp.) Jest pod tym? –

8

Pod VS2010 jest trochę inna. Kliknij projekt prawym przyciskiem myszy i wybierz Właściwości. Wybierz kartę "Aplikacja", a następnie kliknij "Wyświetl ustawienia systemu Windows". To otwiera manifest. Następnie wprowadź potrzebne zmiany.

+4

Jest to dostępne tylko w IDE vb.net. Przyjęta odpowiedź opisuje sposób C#. –

+0

Dzięki @HansPassant, w końcu dotarłem do VB.NET – tete

0

Po prostu wystąpił ten sam problem spowodowany przez skopiowanie istniejącego app.manifest do innego projektu (C#).

Naprawiłem to przez wyładowanie projektu i jego edycję.

włożeniu sekcję follwing w:

<PropertyGroup> 
    <ApplicationManifest>app.manifest</ApplicationManifest> 
    </PropertyGroup> 

Pozwoliło to mój wniosek, aby podnieść app.manifest poprawnie