¿Por qué aparece el error "El código inseguro solo puede aparecer si compila con / inseguro"?

Respuestas:

274

Para usar bloques de código inseguros, el proyecto debe compilarse con el interruptor / inseguro activado.

Abra las propiedades para el proyecto, vaya a la Buildpestaña y marque la Allow unsafe codecasilla de verificación.

Guffa
fuente
44
Debo decir que, aunque eso permite que la compilación se compile, aún no permite que se publique en la web: /
Nick
55
@Nick: Sí, si publica el código para compilarlo dinámicamente, la configuración del proyecto no se aplica. Ver stackoverflow.com/questions/16567197/…
Guffa
9
Tenga en cuenta que la configuración puede diferir entre la compilación de depuración y lanzamiento. Esto solo me costó 20 minutos de mi vida.
LosManos
Solución rápida simple ... genial.
Kalher
131

Aquí hay una captura de pantalla:

Captura de pantalla insegura

ََََََََ

Manoj Attal
fuente
8
Importante: también tenga en cuenta que esta captura de pantalla es para "Configuración: activa (depuración)". Probablemente también deba cambiarlo para "Release", ya que es muy probable que sea lo que está publicando.
Doug S
4

Probablemente porque estás usando un código inseguro.

¿Estás haciendo algo con punteros o conjuntos no administrados en alguna parte?

Gerrie Schenck
fuente
4

Busque su código para unsafebloques o declaraciones. Estos solo son válidos con los que se compila /unsafe.

Ricardo
fuente
3

Para usar bloques de código inseguro, abra las propiedades del proyecto, vaya a la pestaña Generar y marque la casilla de verificación Permitir código inseguro , luego compile y ejecute.

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

Salida:

Data is 10
Address is 1831848
dipankar ranjan baisya
fuente
3

Para todos los que usan Rider, debe seleccionar su proyecto> Clic derecho> Propiedades> Configuraciones Luego seleccione Depurar y liberar y marque "Permitir código inseguro" para ambos .Captura de pantalla

Tobias Brohl
fuente