/CLRUNMANAGEDCODECHECK
(SuppressUnmanagedCodeSecurityAttribute の削除)
/CLRUNMANAGEDCODECHECK
は、リンカーがマネージド コードからネイティブ DLL へのリンカーによって生成されたPInvoke
呼び出しに適用SuppressUnmanagedCodeSecurityAttributeされないように指定します。
構文
/CLRUNMANAGEDCODECHECK
/CLRUNMANAGEDCODECHECK:NO
解説
既定では、リンカーによって生成されたPInvoke
呼び出しに属性が適用されますSuppressUnmanagedCodeSecurityAttribute
。 有効な場合 /CLRUNMANAGEDCODECHECK
は削除 SuppressUnmanagedCodeSecurityAttribute
されます。 リンカーによって生成されたPInvoke
呼び出しに属性を明示的に適用SuppressUnmanagedCodeSecurityAttribute
するには、次を使用/CLRUNMANAGEDCODECHECK:NO
できます。
リンカーは、属性を使用して /clr
コンパイルされるオブジェクトにのみ追加します /clr:pure
。 ただし、 /clr:pure
コンパイラ オプションは Visual Studio 2015 では非推奨となり、Visual Studio 2017 以降ではサポートされていません。
PInvoke
リンカーがマネージド呼び出し元からの参照を満たすマネージド シンボルを見つけられないが、その参照を満たすネイティブ シンボルを見つけることができる場合、リンカーによって呼び出しが生成されます。 PInvoke
の詳細については、「マネージド コードからのネイティブ関数の呼び出し」を参照してください。
コードで使用 AllowPartiallyTrustedCallersAttribute する場合は、属性を削除するように明示的に設定 /CLRUNMANAGEDCODECHECK
する SuppressUnmanagedCodeSecurity
必要があります。 イメージに属性とAllowPartiallyTrustedCallers
属性の両方SuppressUnmanagedCodeSecurity
が含まれている場合、これは潜在的なセキュリティの脆弱性です。
使用SuppressUnmanagedCodeSecurityAttribute
の影響の詳細については、「アンマネージド コードのセキュア コーディング ガイドライン」を参照してください。
Visual Studio 開発環境でこのリンカー オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳しくは、「コンパイラとビルドのプロパティを設定する」をご覧ください。
[構成プロパティ]>[リンカー]>[詳細] プロパティ ページを選択します。
[CLR アンマネージド コード チェック] プロパティを変更します。
このリンカーをコードから設定するには
- 以下を参照してください。CLRUnmanagedCodeCheck
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示