「安全でないコードは/ unsafeでコンパイルした場合にのみ表示される」というエラーが表示されるのはなぜですか?


140

次のエラーが発生するのはなぜですか?

安全でないコードは、/ unsafeでコンパイルした場合にのみ表示される可能性があります "

私はWindows CEでのプログラミングのためにC#およびVisual Studio 2008で働いています。



回答:


274

安全でないコードブロックを使用するには、/ unsafeスイッチをオンにしてプロジェクトをコンパイルする必要があります。

プロジェクトのプロパティを開き、Buildタブに移動してAllow unsafe codeチェックボックスをオンにします。


4
ビルドのコンパイルは可能ですが、Webに公開することはできません:/
Nick

5
@Nick:はい、動的にコンパイルされるコードを公開する場合、プロジェクト設定は適用されません。stackoverflow.com/questions/16567197/…を
Guffa

9
デバッグコンパイルとリリースコンパイルでは設定が異なる場合があることに注意してください。これはちょうど私の人生の20分を要しました。
LosManos 2015

シンプルで迅速なソリューション。
Kalher、2016年

131

ここにスクリーンショットがあります:

安全でないスクリーンショット

ََََََََ


8
重要:このスクリーンショットは「構成:アクティブ(デバッグ)」用であることにも注意してください。それはあなたが公開しているものである可能性が最も高いので、おそらくあなたはまた「リリース」のためにそれを変更する必要があるでしょう。
Doug S

4

安全でないコードを使用しているためと考えられます。

どこかでポインターまたはアンマネージアセンブリを使用していますか?


4

コードでunsafeブロックまたはステートメントを検索します。これらは、でコンパイルされた場合にのみ有効です/unsafe


3

安全でないコードブロックを使用するには、プロジェクトのプロパティを開き、[ ビルド ]タブに移動して、[安全でないコードを許可する]チェックボックスをオンにして、コンパイルして実行します。

class myclass
{
     public static void Main(string[] args)
     {
         unsafe
         {
             int iData = 10;
             int* pData = &iData;
             Console.WriteLine("Data is " + iData);
             Console.WriteLine("Address is " + (int)pData);
         }
     }
}

出力:

Data is 10
Address is 1831848

3

Riderを使用するすべての人は、プロジェクト>右クリック>プロパティ>構成を選択してから、デバッグとリリースを選択して、両方に対して[安全でないコードを許可する]をオンにする必要があります。スクリーンショット

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.