UAC:マニフェストファイルは無視されます
-
22-07-2019 - |
質問
私の実行可能ファイルの1つは、C:\ Program Files \ MyApp \ config.xmlのXMLファイルにいくつかの構成を書き込みます。 Vista / Server 2008では管理者として実行する必要があります。そうしないと、OSはその場所への書き込みを許可しません。
起動時に管理権限を自動的に要求するために、config.exe.manifestという名前のマニフェストファイルを含めました。
ここに私のマニフェストファイルがあります:
<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Windows Server 2008でこれを試しましたが、マニフェストファイルが無視され、実行可能ファイルが十分な権限なしで起動されたようです。
解決 3
OK。MT.EXEを使用してマニフェストファイルを埋め込むと機能します。マニフェストを個別のファイルとして提供しても機能しない理由はありませんが、埋め込みは十分な解決策だと思います。
他のヒント
http:/ /blogs.msdn.com/junfeng/archive/2009/05/11/internal-manifest-vs-external-manifest.aspx
上記のリンクから引用: Windows XPでは、Sxsは内部マニフェストの前に外部マニフェストを検索します。外部マニフェストが見つかった場合、内部マニフェストは無視されます。
Windows Server 2003以降では、順序が逆になります。内部マニフェストは外部マニフェストよりも優先されます。
外部マニフェストを使用し、シナリオがWindows XPで動作するが、Windows Server 2003以降では動作しない場合、実行可能ファイルに内部マニフェストがないことを再確認してください
これはあなたを苦しめます-それの一番下に行き、あなたのマニフェストが無視されるのを助けるために記事といくつかのユーティリティを投稿しました:外部マニフェストが無視される理由を見つける。
>