Add the following line in your [Setup]
section. This is the primary way to indicate that your installer requires administrative rights.
[Setup]
...
PrivilegesRequired=admin
...
Consider embedding an appropriate manifest into your application’s executable to have it automatically request elevation when executed outside the installer. This can provide a more seamless experience for the user.
1. Create the Manifest File:
- Right-click on your project in the Solution Explorer and select Add -> New Item….
- Choose Application Manifest File (it might be under the General category).
- The default name is typically
app.manifest
. Keep this name or adjust it if necessary.
2. Modify the Manifest:
<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v1">
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
- Inside the
<requestedPrivileges>
element, add the following line:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
3. Embed the Manifest:
The manifest is now created, but you need to tell Visual Studio to embed it into your executable:
- Right-click on your project and select Properties.
- Go to the Application tab.
- Under Manifest, select Embed manifest with default settings.
Build the Project:
Rebuild your project. The generated executable will now have the UAC manifest embedded, causing your application to request administrative privileges when run.