Tip: To Disable Virtualization | CodeGuru

Tip: To Disable Virtualization

Embedding Manifest to Disable Virtualization in Windows Vista This will disable the virtualization for your application. On a Vista machine, this manifest can be used for security requirements for an application. For example, on Vista, applications are not allowed to write into “Program Files” or Windows directories. If requestedExecutionLevel is not set to true, the […]

Written By
CodeGuru Staff
CodeGuru Staff
Aug 20, 2008
2 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

Embedding Manifest to Disable Virtualization in Windows Vista

This will disable the virtualization for your application.

On a Vista machine, this manifest can be used for security requirements for an application. For example, on Vista, applications are not allowed to write into “Program Files” or Windows directories.

If requestedExecutionLevel is not set to true, the Registry and file virtualization will be turned on. The program will be writing to “Program Files,” but it’s really writing to C:Users<username>AppDataLocalVirtualStoreProgram Files. The Registry redirects HKEY_LOCAL_MACHINESoftware to HKEY_CURRENT_USERSoftwareClassesVirtualStoreMACHINESOFTWARE<Application Registry Keys>.

To disable the virtualization, you need to create a Manifest file and add the manifest file in the application build events. The Manifest file disables the virtualization in Vista for your application.

Right-click the project–> click the properties–>. On the left-side menu, you need to click the compile menu–>. In the Compile menu, you have this Build Events. When you click the build events, you will have a Post-build event command line; below that, you have a test box.

Here is the link for the manifest file: http://msdn.microsoft.com/en-us/library/bb545961.aspx.

uiAccess needs to be set to false and the level should be asinvoker.

<security>
   <requestedPrivileges>
      <requestedExecutionLevel level="AsInvoker" uiAccess="false"/>
   </requestedPrivileges>
</security>

Virtualization

Before adding the following line of code in that post build command line text box, you need to find the path of the MT.exe file. Usually, it will be in “C:Program FilesMicrosoft Visual Studio 8SDKv2.0BinMT.exe”. Otherwise, please search and find the its path.

To build and embed the manifest file to connect to the application automatically, you need to add the following code in the post-build event of the application and keep this manifest file in the application path.

"Path of the MT.exe"
   -manifest "$(ProjectDir)[application name].exe.manifest"
   -outputresource:"$(TargetDir)$(TargetFileName)";#1
CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.