2015-02-05 66 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

相關問題