How to embed a manifest file at compile time in Vi

2019-01-14 08:11发布

I have a project with a manifest file with the following node:

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

...meaning I want it to only run "as administrator" by default.

from searching around, to make this work I have two options:

  1. "Embed" it.
  2. deploy the manifest file with the exe, and name it YourProject.exe.manifest.

I've tried option 2, and when I run my app it doesn't ask for admin rights?

So, how do I do option 1 in VS2010? I've heard of mt.exe, but this is no good to me as it's done post build. I need the option to part of the solution and the project file itself.

So, how do I make this work? I'll be happy to do 2, but it doesn't seem to work?

3条回答
Emotional °昔
2楼-- · 2019-01-14 08:16

In Visual Studio 2010 the default setting for a new project is to embed the manifest in the application (option #1). By default though a default manifest is included. What you need to do is add a custom manifest.

  • Right click on the project and select "Add New Item"
  • Select "Application Manifest File"

This will add a file named app.manifest to the project. Open that file and modify the line to be the following

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

This should also work in Visual Studio 2008.

查看更多
爷、活的狠高调
3楼-- · 2019-01-14 08:24

I just ran into the same problem caused by copying an existing app.manifest into another project (C#).

I fixed it by unloading the project, editing its csproj file and inserting the following section:

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

This allowed my application to pick up the app.manifest correctly.

查看更多
太酷不给撩
4楼-- · 2019-01-14 08:31

Under VS2010 it is a little different. Right click the Project and select Properties. Select the "Application" tab and then click "View Windows Settings". This opens the manifest. Then make the changes you need.

查看更多
登录 后发表回答