将可执行文件移动到其他位置后,将忽略app.exe.manifest设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将可执行文件移动到其他位置后,将忽略app.exe.manifest设置相关的知识,希望对你有一定的参考价值。

我用MinGW构建我的Windows应用程序:

windres app.rc -O coff -o app.res
gcc -w -mwindows -o app.exe app.c  app.res

这是我的app.exe.manifest:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    version="1.1.0.0"
    processorArchitecture="x86"
    name="controls"
    type="win32"
/>
<dependency>
    <dependentAssembly>
    <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        processorArchitecture="*"
        publicKeyToken="6595b64144ccf1df"
        language="*"
    />
    </dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"
            />
      </requestedPrivileges>
    </security>
  </trustInfo>
<asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">
      <gdiScaling>true</gdiScaling>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>

我这样做是为了启用Windows 10的新GDI扩展。它可以正常工作,直到我将可执行文件移动到其他位置。

令人惊讶的是,复制整个目录没有帮助,因此系统不需要清单或资源文件。这条路似乎在某处硬编码。

我怎样才能解决这个问题?

谢谢

答案

原来我的表现很糟糕。它不包含xmlns:asmv3参数

<assembly xmlns="urn:schemas-microsoft-com:asm.v1"  xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0">

以上是关于将可执行文件移动到其他位置后,将忽略app.exe.manifest设置的主要内容,如果未能解决你的问题,请参考以下文章

Maven:编译时将可执行文件(.exe)移动到目标文件夹中

在被拖动后如何将可拖动对象保持在其位置?

如何使用 Testcontainers 将可执行文件复制到 Docker 容器

nwjs-打包

代码计算神器

在 RAMDisk 上执行二进制文件是不是会将可执行文件重新加载到内存中?