「asInvoker」を含むマニフェストをアプリに追加したことを覚えていなくても、UAC が有効になっている Vista タスク マネージャーによると、仮想化が「無効」で実行される WinForms .NET アプリがあります。VS.NET (このプロジェクトは VS.NET の 4 つのバージョンすべてを使用しています)は、ソリューション エクスプローラーに表示される\Properties\app.manifestファイルを追加している必要がありますが、このファイルには、仮想化を無効にすることが期待されるtrustinfo要素が含まれていません。 . そのため、実際の実行可能ファイルに何が埋め込まれているかを確認するために Reflector を起動しましたが、app.manifest ファイルが見つかりません。実行可能ファイルでマニフェストまたはその兆候を見つけることができるはずですか? VS 2008 によると、ビルド アクションはBaseApplicationManifest です。、しかし、これは実行可能ファイルに埋め込まれていないということですか? 仮想化を無効にした状態でアプリが実行される理由を誰かに説明してもらえますか? また、説明したら、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:
<?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 では、実行可能ファイルのプロジェクト ページに [マニフェスト] オプションが追加されました。このプロジェクトでは、[既定の設定でマニフェストを埋め込む] が選択されています。これはどのようにしてそこにたどり着いたかという答えですが、Reflector でこれを確認するにはどうすればよいでしょうか?