Por que recebo o erro "Código inseguro pode aparecer apenas se estiver compilando com / inseguro"?


140

Por que obtenho o seguinte erro?

Código inseguro pode aparecer apenas se estiver compilando com / inseguro "?

Eu trabalho em C # e Visual Studio 2008 para programação no Windows CE.



Respostas:


274

Para usar blocos de código não seguros, o projeto deve ser compilado com a opção / insegura ativada.

Abra as propriedades do projeto, vá para a Buildguia e marque a Allow unsafe codecaixa de seleção.


4
Devo dizer que, embora isso permita que a compilação seja compilada, ainda não permite que ela seja publicada na web: /
Nick

5
@ Nick: Sim, se você publicar um código a ser compilado dinamicamente, as configurações do projeto não se aplicarão. Veja stackoverflow.com/questions/16567197/…
Guffa

9
Observe que as configurações podem diferir entre a compilação Debug e Release. Isso me custou 20 minutos da minha vida.
LosManos

Solução rápida simples .. ótimo.
Kalher

131

Aqui está uma captura de tela:

Captura de tela não segura

ََََََََ


8
Importante: Lembre-se de que esta captura de tela é para "Configuração: ativa (depuração)". Você provavelmente também precisará alterá-lo para "Release", pois é mais provável que esteja publicando.
Doug S

4

Provavelmente porque você está usando código não seguro.

Você está fazendo algo com ponteiros ou montagens não gerenciadas em algum lugar?


4

Pesquise seu código por unsafeblocos ou instruções. Estes são válidos apenas com os quais é compilado /unsafe.


3

Para usar blocos de código não seguros, abra as propriedades do projeto, vá para a guia Compilar e marque a caixa de seleção Permitir código não seguro , depois compile e execute.

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

Resultado:

Data is 10
Address is 1831848

3

Para todos que usam o Rider, você deve selecionar seu projeto> Clique com o botão direito> Propriedades> Configurações. Em seguida, selecione Depurar e liberar e marque "Permitir código não seguro" para ambos .Captura de tela

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.