1

リソースとして埋め込まれた C# プロジェクトに UAC マニフェストを追加するには、次の手順に従います。

ステップ 1 は正常に機能します。説明に従って、プロジェクトに RC ファイルを単純なテキスト ファイルとして作成します。

#include <winuser.h>
#define IDR_MANIFEST 1 // 2 for a DLL

IDR_MANIFEST RT_MANIFEST MOVEABLE PURE
{
 "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">
   <asmv3:trustInfo xmlns:asmv3=""urn:schemas-microsoft-com:asm.v3"">
     <asmv3:security>
       <asmv3:requestedPrivileges>
         <asmv3:requestedExecutionLevel
           level=""asInvoker""
           uiAccess=""false"" />
       </asmv3:requestedPrivileges>
     </asmv3:security>
   </asmv3:trustInfo>
  </assembly>"
}

次に、Visual Studio コマンド プロンプトを使用して、手順 2 で次の出力を取得します。

  c:\myproject>rc MyResourceFile.rc
  Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
  Copyright (C) Microsoft Corporation.  All rights reserved.


  ConfigurationManager.rc(4) : error RC2135 : file not found: 1

これはかなりばかげていると思いますよね?

4

5 に答える 5

1

再現はありません。何も問題はありません。C#コンパイラは、VS2008(Vistaの場合はVS2005 SP1)以降、すでにUACマニフェストをアセンブリに組み込んでいます。変更する場合は、[プロジェクト] + [新しいアイテムの追加]を使用して、[アプリケーションマニフェストファイル]アイテムテンプレートを選択します。

于 2010-12-14T15:02:55.883 に答える
1

rc ファイルが UTF-8 でエンコードされていることを確認してください。ANSI または UTF-8 BOM でエンコードされたファイルをコンパイルしようとしたところ、このエラー メッセージが表示されました。

于 2017-01-10T18:13:39.703 に答える
0

Hans Passant が言ったように、VS 2008 以降では、マニフェスト ファイルをプロジェクトに直接追加するだけです。次に、プロジェクトのプロパティで、[アプリケーション] タブを選択し、コンボ ボックスの [マニフェスト:] からマニフェスト ファイルを選択します。

于 2010-12-14T15:08:57.590 に答える
0

使ってみて

「winuser.h」を含める

それ以外の

インクルード <winuser.h>

つまり、'<>' を二重引用符に置き換えます。

于 2013-05-17T14:11:52.140 に答える
0

ビルド後のステップで mt.exe を使用してマニフェストを .exe ファイルに埋め込むことになりました。しかし、ハンスの答えは十分に近いものでした。というわけで、「File Not Found」の謎は解けないままなのかな…

于 2010-12-14T15:23:47.183 に答える