Neden “Güvenli olmayan kod yalnızca / güvensiz ile derleniyorsa görünebilir” hatasını alıyorum?


140

Neden aşağıdaki hatayı alıyorum?

Güvenli olmayan kod yalnızca / güvensiz "ile derlendiğinde görünebilir".

Windows CE üzerinde programlama için C # ve Visual Studio 2008'de çalışıyorum.



Yanıtlar:


274

Güvenli olmayan kod bloklarını kullanmak için, proje / güvensiz anahtar açıkken derlenmelidir.

Proje özelliklerini açın, Buildsekmeye gidin ve onay Allow unsafe codekutusunu işaretleyin.


4
Söylemeliyim ki, bu derlemenin derlenmesine izin verse de, yine de web'de yayınlanmasına izin vermiyor: /
Nick

5
@Nick: Evet, dinamik olarak derlenecek kodu yayınlarsanız, proje ayarları geçerli olmaz. Bkz. Stackoverflow.com/questions/16567197/…
Guffa

9
Ayarların Hata Ayıkla ve Bırak derlemesi arasında farklılık gösterebileceğini unutmayın. Bu bana hayatımın 20 dakikasına mal oldu.
LosManos

Basit hızlı çözüm .. harika.
Kalher

131

İşte bir ekran görüntüsü:

Güvensiz ekran görüntüsü

ََََََََ


8
Önemli: Bu ekran görüntüsünün "Yapılandırma: Etkin (Hata Ayıklama)" için de olduğunu unutmayın. Muhtemelen "Release" için de değiştirmeniz gerekecektir, çünkü büyük olasılıkla yayınladığınız şey budur.
Doug S

4

Muhtemelen güvensiz kod kullandığınız için.

Bir yerde işaretçiler veya yönetilmeyen meclislerle bir şeyler mi yapıyorsunuz?


4

Kodunuzda unsafebloklar veya ifadeler arayın . Bunlar sadece geçerlidir ile derlenir /unsafe.


3

Güvenli olmayan kod bloklarını kullanmak için projenin özelliklerini açın, Oluştur sekmesine gidin ve Güvenli olmayan koda izin ver onay kutusunu işaretleyin, ardından derleyin ve çalıştırın.

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

Çıktı:

Data is 10
Address is 1831848

3

Rider kullanan herkes için projenizi seçmelisiniz> Sağ Tıklama> Özellikler> Konfigürasyonlar Sonra Hata Ayıkla ve Bırak'ı seçin ve her ikisi için de "Güvenli olmayan kodlara izin ver" seçeneğini işaretleyin .Ekran görüntüsü

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.