CodeDom を使用して C# コードをコンパイルしています。リソースが指定されていない場合でも、「VERSIONINFO」と呼ばれる Win32Resource をコンパイルします。コンパイル後に BeginUpdateResource で削除できることはわかっていますが、ファイルに「PADDINGXXPADDINGXX」が残るので、これは望ましくありません。リソースなしで C# コードを .exe にコンパイルする方法はありますか?
1 に答える
1
これに頭を悩ませるのは、実はかなり面倒です。EXE には、VERSIONINFO リソースが含まれているだけでなく、マニフェストも含まれています。これを確認する最善の方法は、Visual Studio で [ファイル] + [開く] + [ファイル] を使用して EXE を開くことです。マニフェストは RT_MANIFEST ノードの下にあります。
プログラムが UAC 互換であることを宣言するため、これは重要です。これがないと、Windows はそれを従来の Windows アプリのように扱います。これは、ファイルとレジストリへのアクセスを分離ストレージに再マッピングするという、かなり予測不可能な動作です。
欲しいものを手に入れることができます。メモ帳 (Visual Studio ではない) で空の .rc テキスト ファイルを作成し、rc.exe で .res ファイルにコンパイルします。CompilerOptions で /win32manifest を使用して、自動生成されたネイティブ リソースを除外するようにコンパイラに強制的に使用させます。
于 2012-02-09T14:37:13.253 に答える