Mengapa saya mendapatkan pesan error “Kode tidak aman hanya dapat muncul jika dikompilasi dengan / tidak aman”?


143

Mengapa saya mendapatkan kesalahan berikut?

Kode tidak aman hanya dapat muncul jika dikompilasi dengan / tidak aman "?

Saya bekerja di C # dan Visual Studio 2008 untuk pemrograman di Windows CE.



Jawaban:


276

Untuk menggunakan blok kode yang tidak aman, proyek harus dikompilasi dengan tombol / unsafe on.

Buka properti untuk proyek tersebut, buka Buildtab dan centang Allow unsafe codekotak centang.


4
Saya harus mengatakan, meskipun itu memungkinkan build untuk dikompilasi, itu masih tidak memungkinkannya dipublikasikan ke web: /
Nick

5
@Nick: Ya, jika Anda menerbitkan kode untuk dikompilasi secara dinamis, maka pengaturan proyek tidak berlaku. Lihat stackoverflow.com/questions/16567197/…
Guffa

9
Perhatikan bahwa setelan mungkin berbeda antara kompilasi Debug dan Rilis. Ini hanya menghabiskan 20 menit hidup saya.
LosManos

Solusi cepat sederhana..bagus.
Kalher

Anda mungkin harus mengubah konfigurasi build dari Debug ke Rilis untuk berbagai jenis build
SZT

130

Ini tangkapan layarnya:

Tangkapan layar tidak aman

ََََََََ


9
Penting: Ketahuilah juga bahwa tangkapan layar ini untuk "Konfigurasi: Aktif (Debug)". Anda mungkin juga perlu mengubahnya menjadi "Rilis", karena kemungkinan besar itulah yang Anda publikasikan.
Doug S

4

Mungkin karena Anda menggunakan kode yang tidak aman.

Apakah Anda melakukan sesuatu dengan petunjuk atau rakitan yang tidak terkelola di suatu tempat?


4

Cari kode Anda untuk unsafeblok atau pernyataan. Ini hanya valid dikompilasi dengan /unsafe.


3

Untuk menggunakan blok kode yang tidak aman, buka properti proyek, buka tab Build dan centang kotak Izinkan kode tidak aman , lalu kompilasi dan jalankan.

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);
         }
     }
}

Keluaran:

Data is 10
Address is 1831848

3

Untuk semua orang yang menggunakan Rider, Anda harus memilih proyek Anda> Klik Kanan> Properti> Konfigurasi Kemudian pilih Debug dan Lepaskan dan centang "Izinkan kode tidak aman" untuk keduanya .Screenshot

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.