2009-10-19 68 views
0

以下清單添加到我的.exe:爲什麼我的Windows清單中出現重複條目​​?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2"> 
     <ms_asmv2:security> 
      <ms_asmv2:requestedPrivileges> 
       <ms_asmv2:requestedExecutionLevel level="asInvoker" /> 
      </ms_asmv2:requestedPrivileges> 
     </ms_asmv2:security> 
    </ms_asmv2:trustInfo> 
    <asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> 
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> 
     <dpiAware>true</dpiAware> 
    </asmv3:windowsSettings> 
    </asmv3:application> 
</assembly> 

但是當我查看清單(例如使用肯尼·科爾的清單查看)中的應用,windowsSettings和dpiAware標籤看似重複:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
... general properties ... 
    <asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> 
     <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> 
      <dpiAware>true</dpiAware> 
     </asmv3:windowsSettings> 
    </asmv3:application> 
    <asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> 
     <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> 
      <dpiAware>true</dpiAware> 
     </asmv3:windowsSettings> 
    </asmv3:application> 
    </assembly> 

任何想法爲什麼會發生這種情況,它會導致任何問題?

回答

0

在做了大量的實驗並嘗試各種版本的mt.exe來嵌入清單,如某些網站上的建議,我注意到了一種模式;在我看到的所有示例中,清單文件名似乎總是與項目或可執行文件名稱匹配,但是附加了'.manifest'。

我的清單文件名不完全匹配,所以我將其重命名爲與我的應用程序的Visual Studio項目名稱相匹配。我還將Manifest Tool屬性中的'Additional Manifest Files'選項更改爲'$(ProjectDir)$(ProjectName).manifest',而不是我以前的硬編碼文件名。

這些更改一起工作併爲我提供了一個帶有正確嵌入式清單的可執行文件。

+0

「其他清單文件」導致清單被*自動生成的清單合併*。 「app.exe.manifest」是最終生成的清單的通用名稱,使用該名稱時,它可以放置在與「app.exe」相同的文件夾中,並由系統加載而不必作爲資源。這也是爲什麼選擇完全相同的名稱對於清單片段(即通過附加清單文件添加的清單)來說是一個壞主意,因爲您現在有一塊最終清單僞裝成完整清單。 – 2009-10-22 12:04:41

相關問題