gpt4 book ai didi

.net - 使用 Reflector,为什么我看不到嵌入在 .NET 应用程序中的 app.manifest?

转载 作者:行者123 更新时间:2023-12-02 19:48:28 24 4
gpt4 key购买 nike

我有一个 WinForms .NET 应用程序,根据启用了 UAC 的 Vista 任务管理器,该应用程序在虚拟化“禁用”的情况下运行,尽管我不记得向该应用程序添加了带有“asInvoker”的 list 。 VS.NET(这个项目已经经历了 VS.NET 的所有四个版本)必须添加了我在解决方案资源管理器中看到的 \Properties\app.manifest 文件,但该文件不包含 >trustinfo 元素我本来希望禁用虚拟化。因此,我启动了 Reflector 以查看可能嵌入到我的实际可执行文件中的内容,但我找不到 app.manifest 文件。我应该能够在可执行文件中找到它的 list 或标志吗?根据VS 2008,构建操作是BaseApplicationManifest,但这是否意味着它没有嵌入到可执行文件中?有人可以解释为什么我的应用程序在我没有要求的情况下在禁用虚拟化的情况下运行吗?一旦解释,有人可以指出我在哪里可以通过 Reflector 在我的应用程序中找到导致此问题的工件吗?

作为 app.manifest 在我的解决方案中存在的后续内容(谁知道多久),它充满了我不确定是否还需要的各种 IPermissions。是什么向该文件添加了内容?它是否包含我不再需要的权限?是否应该修剪或管理?我应该明确添加 trustinfo 吗?我想 app.manifest 只是一个我需要了解更多的谜。

更新:来自 this article ,我了解到我可以使用 SysInternals/Microsoft Sigcheck 实用程序来查看以下信息,但我不知道我的应用程序如何与 MyApplication.app 进行签名。这种情况发生在构建过程中的什么地方?

c:\Users\Public\Programs\SysinternalsSuite>sigcheck.exe -m ceo.exe

sigcheck v1.54 - sigcheck
Copyright (C) 2004-2008 Mark Russinovich
Sysinternals - www.sysinternals.com

"c:\Users\Public\Programs\SysinternalsSuite\ceo.exe":
Verified: Unsigned
File date: 1:47 PM 2/6/2009
Publisher: CEO Image Systems
Description: Main Menu
Product: Image Executive CEO
Version: 2.0.0.0
File version: 2.0.0.0
Manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

更新 2: 看起来我最终会到达那里。 VS 2008 在可执行文件的项目页面上添加了一个 Manifest 选项,我的项目已选择“使用默认设置嵌入 list ”。所以这回答了它是如何到达那里的,但是我如何在 Reflector 中看到它?

最佳答案

Reflector 不允许您查看非托管资源。您不需要特殊的工具,只需使用 Visual Studio 的"file"+“打开”+"file"并选择您的 .exe 即可浏览资源。可通过 RT_MANIFEST 节点访问 list 。观众不是很友好,你会得到一个十六进制转储。您可以使用上下文菜单将其导出到文本文件。

C# 和 VB.NET 编译器自动生成 Vista 兼容 list 。您可以使用/win32manifest command line option覆盖它。当您使用“项目”+“添加新项”+“应用程序 list 文件”时,IDE 将自动执行此操作。

关于.net - 使用 Reflector,为什么我看不到嵌入在 .NET 应用程序中的 app.manifest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/525829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com