Почему я получаю сообщение об ошибке. Небезопасный код может появиться только при компиляции с / unsafe?

Почему я получаю следующую ошибку?

Небезопасный код может появиться только при компиляции с / unsafe "?

Я работаю на C # и Visual Studio 2008 для программирования на Windows CE.


person Gold    schedule 08.01.2010    source источник
comment
Возможный дубликат Я могу получить msbuild для создавать небезопасные блоки кода   -  person stack247    schedule 09.06.2018


Ответы (6)


Чтобы использовать небезопасные блоки кода, проект должен быть скомпилирован с включенным переключателем / unsafe.

Откройте свойства проекта, перейдите на вкладку Build и установите флажок Allow unsafe code.

person Guffa    schedule 08.01.2010
comment
Я должен сказать, что хотя это и позволяет компилировать сборку, это по-прежнему не позволяет опубликовать ее в Интернете: / - person Nick; 17.09.2013
comment
@Nick: Да, если вы публикуете код для динамической компиляции, настройки проекта не применяются. См. stackoverflow.com / questions / 16567197 / - person Guffa; 17.09.2013
comment
Обратите внимание, что настройки могут отличаться для компиляции отладки и выпуска. Это стоило мне 20 минут моей жизни. - person LosManos; 02.12.2015
comment
Простое быстрое решение .. отличное. - person Kalher; 04.11.2016
comment
Возможно, вам придется изменить конфигурацию сборки с Debug на Release для другого типа сборок. - person SZT; 17.09.2020

Вот скриншот:

Небезопасный снимок экрана

ََََََََ

person Manoj Attal    schedule 21.07.2011
comment
Важно: также имейте в виду, что этот снимок экрана предназначен для конфигурации: активна (отладка). Возможно, вам также потребуется изменить его для выпуска, поскольку, скорее всего, вы публикуете именно его. - person Doug S; 08.05.2017

Вероятно, потому что вы используете небезопасный код.

Вы где-то что-то делаете с указателями или неуправляемыми сборками?

person Gerrie Schenck    schedule 08.01.2010

Найдите в своем коде unsafe блоков или операторов. Они действительны только при компиляции с /unsafe.

person Richard    schedule 08.01.2010

Чтобы использовать небезопасные блоки кода, откройте свойства проекта, перейдите на вкладку Сборка и установите флажок Разрешить небезопасный код, затем скомпилируйте и запустите.

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
person dipankar ranjan baisya    schedule 05.11.2010

Для всех, кто использует Rider, вы должны выбрать свой проект> Щелкните правой кнопкой мыши> Свойства> Конфигурации, затем выберите «Отладка и выпуск» и отметьте «Разрешить небезопасный код» для обоих.  Снимок экрана

person Tobias Brohl    schedule 22.04.2018