Чому я отримую помилку "Небезпечний код може з’являтися лише при компіляції з / небезпечним"?


140

Чому я отримую таку помилку?

Небезпечний код може з’являтися лише в разі компіляції з / небезпечним "?

Я працюю в C # і Visual Studio 2008 для програмування на Windows CE.



Відповіді:


274

Для використання небезпечних блоків коду проект повинен бути складений з увімкненим перемикачем / небезпечним.

Відкрийте властивості для проекту, перейдіть на Buildвкладку і поставте Allow unsafe codeпрапорець.


4
Треба сказати, хоча це дає змогу збирати збірку, вона все ще не дозволяє опублікувати її в Інтернеті: /
Нік

5
@ Nick: Так, якщо ви публікуєте код, який потрібно складати динамічно, налаштування проекту не застосовуються. Див stackoverflow.com/questions/16567197 / ...
Guffa

9
Зауважте, що налаштування можуть відрізнятися між компіляцією налагодження та випуском. Це просто коштувало мені 20 хвилин мого життя.
ЛосМанос

Просте швидке рішення.
Кальгер

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, ви повинні вибрати свій проект> Клацніть правою кнопкою миші> Властивості> Конфігурації. Потім виберіть Налагодження та випуск та встановіть прапорець "Дозволити небезпечний код" для обох .Знімок екрана

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.