我有两个由其他人编写的项目,一个是WPF应用程序,另一个是Console应用程序。 WPF应用程序与可执行文件一起生成.exe.manifest文件,以某种方式使用项目设置自动生成(它未明确声明为app.manifest)。但是控制台应用程序没有生成一个。我如何设置它来生成一个?
答案 0 :(得分:6)
对于Visual Studio 2013中的C / C ++,我找到了两种方法:
现代方式:合并其他XML
转到(属性)>链接器>显示并更改Generate Manifest为YES。您还可以在此处设置UAC / admin权限,而无需创建自己的清单XML。
将新的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>
转到(属性)&gt; Manifest工具&gt;输入和输出,并使用Additional Manifest Files设置
手动方式:使用自定义RC文件
如果您将手动编辑的第二个RC文件添加到项目中,则可以包含清单XML文件。
在RC文件中,添加以下行
#define MANIFEST_RESOURCE_ID 1
MANIFEST_RESOURCE_ID RT_MANIFEST "res\\my-manifest-xml.manifest"
为此,您需要确保您的XML文件包含清单所需的所有标记。
测试结果
来自Systenternals的SigCheck有一个-m选项,可以显示清单。