VS2010 Setup-Projekt - Als Administrator ausführen

8

Ich habe eine VS2010-Lösung mit zwei Projekten - einem .NET 4-Programm und einem Installer dafür. Der Installer ist nur ein einfaches Setup-Projekt mit einer Voraussetzung - .NET Framework 4.

Das Problem ist, dass ich das Installationsprogramm setup.exe benötige, um immer als Administrator ausgeführt zu werden, da sonst das Setup unter der Benutzerkontensteuerung fehlschlägt. (Es fordert mich standardmäßig nicht zur Erhöhung von Berechtigungen auf.)

Ich habe versucht, eine setup.exe.manifest (siehe unten) neben der setup.exe anzuordnen, damit sie als Administrator ausgeführt wird. Leider ignoriert Windows sie, wahrscheinlich weil eine andere Manifest-Datei, die in die setup.exe selbst eingebettet ist und auf asInvoker und nicht auf requireAdministrator gesetzt ist.

%Vor%

Ich habe auch versucht, eine Startbedingung mit den folgenden Eigenschaften hinzuzufügen: -

%Vor%

Das macht auch nichts.

Also kann jemand bitte ein Licht auf die Lösung dieses Problems werfen?

P.S. Ich weiß, dass Sie dieses Problem umgehen können, indem Sie die Kompatibilitätseinstellungen von setup.exe ändern, aber dies ist ein manueller Prozess und kann nicht über einen automatisierten Buildprozess (TFS) durchgeführt werden. Auch das Bereitstellen einer Verknüpfung mit der Kompatibilitätseinstellung ist seltsam, da niemand eine Verknüpfung zu einer setup.exe im selben Ordner bereitstellt, ganz zu schweigen davon, dass die Verknüpfung den genauen Pfad der setup.exe im Voraus kennen muss. (Das Setup-Paket wird verschoben.)

Bearbeiten: Übrigens ist mein Problem genau das gleiche wie das beschriebene hier . Aber leider wurden für diesen Typ keine Lösungen gefunden und der Fragesteller hat nur seine Kunden gebeten, Als Administrator ausführen manuell zu verwenden, was ich zu vermeiden versuche.

    
SF Lee 16.07.2012, 00:12
quelle

3 Antworten

12

Wie von Frank hervorgehoben, ist das Verhalten des Visual Studio-Installationsprojekts auf der Microsoft-Website dokumentiert:

Visual Studio Installer-Bereitstellung

Mit anderen Worten, das von VS008 und VS2010 produzierte setup.exe wird immer ohne Aufforderung zur Erhöhung der Rechte ausgeführt (es sei denn, Sie führen es explizit mit dem Befehl < Als Administrator ausführen 'Kontextmenüoption). Es wird abwechselnd jede vorausgesetzte Komponente sowie das MSI-Hauptinstallationsprogramm als separate Prozesse ausführen und zur Erhöhung von Berechtigungen für alle Benutzer auffordern, die es benötigen. Dies bedeutet, dass es mehrere Aufforderungen für Erhebungen geben kann.

Aus bestimmten Gründen funktioniert das jedoch nicht immer. In meinem Fall wird die Eingabeaufforderung für die .NET Framework-Voraussetzung überhaupt nicht angezeigt, wenn ich setup.exe ausführen. Aber Wenn ich das erforderliche Installationsprogramm direkt ausführe, wird die Eingabeaufforderung angezeigt. Dies bedeutet, dass das Problem nicht bei der vorausgesetzten Komponente liegt, sondern entweder mit setup.exe oder mit Windows selbst.

Die Lösung (oder Problemumgehung)? Laut Microsoft im obigen Link können wir erzwingen setup.exe , um jede vorausgesetzte Komponente zu starten, und das Haupt-MSI, mit Eingabeaufforderungen auszuführen. Dazu müssen wir die Setup-Projektdatei (.vdproj) manuell bearbeiten und den folgenden RequiresElevation -Wert wie folgt in TRUE ändern:

%Vor%

Dies ist nicht die ideale Lösung, aber es ist nahe genug an meiner ursprünglichen Anforderung, so dass ich mit dieser Lösung zufrieden bin.

    
SF Lee 24.07.2012, 09:59
quelle
2

Wenn Sie MSI im Admin-Modus ausführen möchten, hier ist der Weg, 1) Öffnen Sie Ihr Setup-Projekt, View- & gt; Launch Conditions.

2) Klicken Sie mit der rechten Maustaste auf Startbedingungen und fügen Sie eine neue Bedingung in Ihre Startbedingungen ein.

3) Klicken Sie mit der rechten Maustaste auf die Bedingung und wählen Sie das Eigenschaftenfenster.

4) Setzen Sie die Bedingung auf

  

AdminBenutzer

. 5) Erstellen und installieren.

    
Shrivallabh 12.10.2015 06:02
quelle
0

Ich denke, dass dein Problem mit dem Namen des Installers zu tun hat. Dieser Link

How vermeide ich UAC, wenn mein EXE-Dateiname das Wort "update" enthält?

sagt, dass, wenn der Name Update oder Setup enthält, die UAC aktiviert wird.

Können Sie Ihr Installationsprogramm in etwas anderes umbenennen?

    
DeanOC 16.07.2012 00:29
quelle