0

以下清单已添加到我的 .exe 中:

<?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>

但是当我查看清单(例如使用 Kenny Kerr 的清单视图)时,应用程序、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>

知道为什么会发生这种情况,会导致任何问题吗?

4

1 回答 1

0

在进行了大量实验并尝试了各种版本的 mt.exe 以按照某些网站的建议嵌入清单后,我注意到了一种模式;在我看到的所有示例中,清单文件名似乎总是与项目或可执行文件名匹配,但附加了一个“.manifest”。

我的清单文件名不完全匹配,所以我重命名它以匹配我的应用程序的 Visual Studio 项目名称。我还将清单工具属性中的“附加清单文件”选项更改为“$(ProjectDir)$(ProjectName).manifest”,而不是我之前的硬编码文件名。

这些更改一起起作用,并为我提供了一个带有正确嵌入清单的可执行文件。

于 2009-10-22T09:52:13.277 回答