2015-02-05 111 views
3

我有两个由其他人编写的项目,一个是WPF应用程序,另一个是Console应用程序。 WPF应用程序与可执行文件一起生成一个.exe.manifest文件,不知何故,它使用项目设置自动生成(它没有明确声明为app.manifest)。但控制台应用程序不会生成一个。我将如何设置它来生成一个?如何在Visual Studio 2013中生成清单文件

回答

5

在Visual Studio 2013的C/C++,我发现2种方式:

现代的方式:合并额外的XML

  1. 转到(属性)>链接>清单和将生成清单更改为YES。您也可以在这里设置UAC /管理权限,而无需创建自己的清单XML。

  2. 一个新的XML文件添加到项目,并包括你需要一个组装包装标签内的其他清单条目,例如:

    <?xml version="1.0" encoding="utf-8"?> 
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
    <application> 
    <!--The ID below indicates application support for Windows 8.1 --> 
    <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> 
    <!-- 10.0 --> 
    <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> 
    </application> 
    </compatibility> 
    </assembly> 
    
  3. 转到(属性)>清单工具>输入和输出,并使用附加清单文件加入步骤2的XML文件中设置

手工方式:使用自定义RC文件

如果您将手动编辑的第二个RC文件添加到项目中,则可以包含清单XML文件。

  1. RC文件添加到您的项目
  2. (项目)>链接打开清单生成OFF,因为你不希望Visual Studio创建链接时自己的表现做。
  3. 在RC文件,添加这些行

    #define MANIFEST_RESOURCE_ID 1 
    MANIFEST_RESOURCE_ID RT_MANIFEST "res\\my-manifest-xml.manifest" 
    

为此,你需要确保你的XML文件包含所需清单的所有标签。

测试结果

SigCheck从Systenternals有一个-m选项,将显示你的清单。

SigCheck - SysInternals - TechNet

相关问题