マネージ コードで IntPtr を使用すると セキュリティおよび信頼性の問題が生じる可能性があります IntPtr のすべての使用状況を確認し SafeHandle (または類似する技術) の利用その場所に必要かどうかを決定する必要があります ...

マネージ コードで IntPtr を使用すると、セキュリティおよび信頼性の問題が生じる可能性があります。IntPtr のすべての使用状況を確認し、SafeHandle (または類似する技術) の利用その場所に必要かどうかを決定する必要があります。IntPtr が、マネージ コードの所有しうるネイティブ リソース (メモリ、ファイル ハンドル、ソケット等) を表している場合に、問題が生じる可能性があります。たとえば、マネージ コードはリソースを解放することを予期されており、それが行われない場合にはリソース リークが発生します。そのようなシナリオでは、IntPtr および IntPtr によって表されているリソースをリリースする方法に対するマルチスレッド アクセスが許可されている場合、セキュリティおよび信頼性の問題が発生する可能性があります。これらの問題は、リソースの解放時に IntPtr を再利用しようとした際に、そのリソースが他のスレッドから同時に利用されている状況では、不適切なリソースに関連付けられているデータの読み込みや書き込みが他のスレッドから可能にしてしまうような競合条件の発生も伴います。たとえば、OS ハンドルを IntPtr 型として格納し、ユーザーに Close とそのハンドルを使用している他のメソッドの同時に呼び出すことを一切の同期手続きなしに行うことを許可した場合、そのコードには、データの破損およびセキュリティの脆弱性の原因となりうるハンドルの再利用問題が含まれることになります。SafeHandle (およびその兄弟クラス CriticalHandle) は、そのようなスレッド問題を回避できるように、ネイティブ ハンドルをリソースへカプセル化する機構を提供します。(ネイティブ メソッドへの呼び出しよりも、ネイティブ ハンドルのコピーを含んでいるマネージ オブジェクトの有効期間を注意深く制御する必要性などの問題も回避できます。例: GC.KeepAlive への呼び出しを削除できます。) SafeHandle (および CriticalHandle) を使用するとパフォーマンスのオーバーヘッドが発生しますが、通常、設計時に注意することでそのオーバーヘッドを軽減することができます。
マニフェスト ファイル : 生成するマニフェスト ファイルの名前を指定します マニフェストの生成 が True のときのみ使用されます (/MANIFESTFILE:[ファイル]) マニフェストによってアプリケーションの特定の設定が決定されます カスタム マニフェストを埋め込むには カスタム マニフェストをプロジェクトに追加してから 次の一覧から選択します マネージ '%s' を呼び出します: マネージ コードは DLL エントリポイントおよび DLL エントリポイントから到達した呼び出しを含むローダー ロック下では実行できません マネージ コード プロファイルのコンポーネントは登録されていませんでした - 修復しています このセッションは マネージまたは混合アプリケーションに対する正しい結果を含んでいない可能性があります アプリケーションの再起動を考慮してください マネージ コードで IntPtr を使用すると セキュリティおよび信頼性の問題が生じる可能性があります IntPtr のすべての使用状況を確認し SafeHandle (または類似する技術) の利用その場所に必要かどうかを決定する必要があります ... マネージ コードを持たないアセンブリなど 無効なアセンブリを分析しているとき コード分析からの警告を抑制するかどうかを示します 既定値は true です マネージ コードを持たないアセンブリなど 無効なアセンブリを分析しているとき コード分析からの警告を抑制するかどうかを示します 既定値は true です マネージ コード拡張を使って既にカスタマイズされた 既存のドキュメントが指定されました このドキュメントに関連付けられているコードまたはカスタム プロパティの定義は 新しいプロジェクトにコピーできません このドキュメントを使用してプロジェクトを作成しますか? ... マネージ コード拡張を使用して既にカスタマイズされている既存のドキュメントが指定されました このドキュメントに関連付けられているコードまたはカスタム プロパティ定義は 新しいプロジェクトにコピーされません