-win32manifest (Visual Basic)

标识要嵌入到项目的可移植可执行文件(PE)文件中的用户定义 Win32 应用程序清单文件。

语法

-win32manifest: fileName  

论据

术语 定义
fileName 自定义清单文件的路径。

注解

默认情况下,Visual Basic 编译器会嵌入一个应用程序清单,该清单指定请求的执行级别 asInvoker。 它在生成可执行文件的同一文件夹中创建清单,通常是使用 Visual Studio 时的 bin\Debug 或 bin\Release 文件夹。 如果要提供自定义清单,例如指定请求的执行级别 highestAvailable 或 requireAdministrator,请使用此选项指定文件的名称。

注释

此选项和 -win32resource 选项互斥。 如果尝试在同一命令行中使用这两个选项,则会出现生成错误。

没有指定所请求执行级别的应用程序清单的应用程序将在 Windows Vista 中的“用户帐户控制”功能下受到文件/注册表虚拟化的约束。 有关虚拟化的详细信息,请参阅 Windows Vista 上的 ClickOnce 部署

如果满足以下任一条件,应用程序将受到虚拟化的约束:

  1. 使用此选项 -nowin32manifest ,并且未在后续生成步骤中提供清单,或者通过使用 -win32resource 此选项作为 Windows 资源(.res)文件的一部分提供清单。

  2. 提供未指定请求的执行级别的自定义清单。

Visual Studio 将创建一个默认的 .manifest 文件,并将其与可执行文件一起存储在调试和发布目录中。 可以通过单击项目设计器中的“应用程序”选项卡上的“查看 UAC 设置”来查看或编辑默认 app.manifest 文件。 有关详细信息,请参阅应用程序页、项目设计器(Visual Basic)。

可以使用此选项将应用程序清单作为自定义生成后步骤或 Win32 资源文件的 -nowin32manifest 一部分提供。 如果希望应用程序受到 Windows Vista 的文件或注册表虚拟化的影响,请使用该选项。 这会阻止编译器在 PE 文件中创建和嵌入默认清单。

示例:

以下示例显示了 Visual Basic 编译器插入 PE 的默认清单。

注释

编译器将标准应用程序名称 MyApplication.app 插入清单 XML。 这是一种解决方法,使应用程序能够在 Windows Server 2003 Service Pack 3 上运行。

<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">  
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>  
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">  
    <security>  
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">  
        <requestedExecutionLevel level="asInvoker"/>  
      </requestedPrivileges>  
    </security>  
  </trustInfo>  
</assembly>  

另请参阅