2

私の実行可能ファイルの 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 で試しましたが、マニフェスト ファイルが無視されているようで、実行可能ファイルが十分な権限なしで起動されます。

4

3 に答える 3

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 以降では機能しない場合は、実行可能ファイルに内部マニフェストがないことを再確認してください。

于 2009-10-14T03:05:31.590 に答える
2

これはあなたを悩ませます-それの底に行き、あなたのマニフェストが無視されるのを助けるための記事といくつかのユーティリティを投稿しました: Find Out Why Your External Manifest Is being Ignored .

于 2011-01-07T02:25:18.403 に答える
0

MT.EXEを使用してマニフェストファイルを埋め込むと動作します。マニフェストを別のファイルとして提供すると機能しない理由はまだわかりませんが、埋め込みは十分な解決策だと思います。

于 2009-09-18T14:09:10.023 に答える