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


140

¿Por qué recibo el siguiente error?

El código inseguro solo puede aparecer si compila con / inseguro "?

Trabajo en C # y Visual Studio 2008 para programar en Windows CE.



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.


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

ََََََََ


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?


4

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


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

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.