2009-09-18 6 views
2

私の実行可能ファイルの1つは、C:\ Program Files \ MyApp \ config.xmlへのXMLファイルにいくつかの設定を書き込みます。 Vista/Server 2008の管理者として実行する必要があります。そうしないと、OSはその場所に書き込めません。UAC:マニフェストファイルは無視されます

私は、起動時に管理権限を自動的に要求するために、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でこれをしようとしたが、マニフェストファイルには十分な権限なしに無視されるようにし、実行ファイルが起動されるようです。

答えて

0

これは、MT.EXEを使用してマニフェストファイルを埋め込むと機能します。マニフェストを別のファイルとして提供しても、それがなぜ機能しないのかはまだありませんが、埋め込みは十分な解決策であると思います。上記のリンクから引用

+1

antony is right:実行可能ファイルに*マニフェストが組み込まれていないことを確認してください。そうすれば、Windowsのローダーは外部のものを使用します。 –

3

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以降では、実行ファイルをダブルチェックして下さい内部マニフェスト

2

を持っていません。これは、バティあなたを駆動しますが - になりましたあなたのマニフェストを無視するのに役立つ記事といくつかのユーティリティを投稿しました:Find Out Why Your External Manifest Is Being Ignored

関連する問題