アセンブリ マニフェストを .NET 実行可能ファイルに追加するにはどうすればよいですか?
アセンブリ マニフェストは、リソース タイプRT_MANIFEST
(24) の .NET ポータブル実行可能ファイル (PE) に追加される XML ファイルです。
アセンブリ マニフェストは、実行可能ファイルに関する多くのことを宣言するために使用されます。
私は優れた開発者であるため、DPI スケーリングを無効にしたい場合:
<!-- We are high-dpi aware on Windows Vista --> <asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> <dpiAware>true</dpiAware> </asmv3:windowsSettings> </asmv3:application>
Windows 7 で設計およびテストされたことを宣言できます。また、Windows 7 のバグに依存し続ける必要があります。
<!-- We were designed and tested on Windows 7 --> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <!--The ID below indicates application support for Windows 7 --> <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> </application> </compatibility>
私は優れた開発者であり、ファイルとレジストリの仮想化は必要ないと宣言できます
<!-- Disable file and registry virtualization --> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo>
Microsoft Common Controlsライブラリの特定のバージョン 6 に依存していると宣言できます。
<!-- Dependency on Common Controls version 6 --> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*"/> </dependentAssembly> </dependency>
特定のバージョンの GDI+ に依存していると宣言できます。
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.GdiPlus" version="1.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency>
昔は、リソース スクリプトファイル ( *.rc
)を作成していました。
wumpa.rc
1 24 AssemblyManifest.xml
そのファイルをプロジェクトに追加すると、コンパイラはファイルをコンパイルし.rc
ます。最終的な実行可能イメージにリソースを含めます。
ただし、Visual Studio 2010 には、リソース スクリプト ファイルをプロジェクトに追加する方法がないようです。
Visual Studio 2010 のプロジェクトにリソース スクリプトを追加するにはどうすればよいですか?
Visual Studio 2010 のプロジェクトにアセンブリ マニフェストを追加するにはどうすればよいですか?
注: どのソリューションも、ソース管理と複数の開発者がいる環境で機能する必要があります (たとえば、おそらくインストールされていないバイナリへのパスをハードコーディングすると、ビルドが壊れて機能しなくなります)。
ボーナスおしゃべり
更新: マイケル フォックスは、プロジェクト プロパティ ダイアログを使用してアセンブリ マニフェストを含めることを提案していますが、どこにあるかは示していません。
更新:私が試したこと:
- プロジェクトのプロパティ画面から、Applicationを選択します。ラジオ オプションIcon and Manifest を選択します。[マニフェスト] の下で、次のデフォルト オプションをそのままにします
Embed manifest with default settings
。
私の設定ではなく、デフォルト設定のマニフェストが埋め込まれているため、機能しません。
[マニフェスト]で、コンボ オプションを次のように変更します
Create application without a manifest
。マニフェストが埋め込まれていないため機能しません
[リソース] の下で、[リソース ファイル] ラジオ オプションを選択します。
アセンブリ マニフェスト (またはアセンブリ マニフェストを含むリソース スクリプト) を選択できないため、機能しません
[リソース]で、[リソース ファイル] ラジオ オプションを選択し、アセンブリ マニフェスト XML ファイルへのパスを入力します。
アセンブリ マニフェストが表示されると Visual Studio がチョークするため、機能しません。
- [リソース]で、[リソース ファイル] ラジオ オプションを選択し、リソース スクリプト ファイルへのパスを入力します。
リソース スクリプトが表示されると Visual Studio がチョークするため、機能しません。
をプロジェクトに追加し、[マニフェスト] コンボ ボックス
AssemblyManifest.xml
で探します。アセンブリ マニフェスト ファイルがオプションとしてリストされていないため、機能しません
他にもスクリーンショットを保存できるものがたくさんあります (ソリューションに .rc ファイルを追加し、ドロップダウンで探して、「マニフェストなし」を選択し、
wumpa.rc
ビルド アクションをさまざまなものに変更.rc
し、別のリソース コンパイラを使用してファイルをビルドし、手動で、または pre-build/msbuild ステップで、その.res
ファイルをリソースとして選択します)。質問に余分なバルクを追加するのをやめて、答えを期待します。