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.

Ouro
fonte

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.

Guffa
fonte
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

ََََََََ

Manoj Attal
fonte
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?

Gerrie Schenck
fonte
4

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

Richard
fonte
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
dipankar ranjan baisya
fonte
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

Tobias Brohl
fonte