当前位置:  开发笔记 > 开发工具 > 正文

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

如何解决《使用Reflector,为什么我看不到我的.NET应用程序中嵌入的app.manifest?》经验,为你挑选了1个好方法。

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

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

更新:从本文中,我了解到我可以使用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:


  
  
    
      
        
      
    
  

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



1> Hans Passant..:

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

C#和VB.NET编译器自动生成Vista兼容的清单.您可以使用/ win32manifest命令行选项覆盖它.当您使用Project + Add New Item + Application Manifest File时,IDE将自动执行此操作.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有