Warum erhalte ich die Fehlermeldung "Unsicherer Code wird möglicherweise nur beim Kompilieren mit / unsicher angezeigt"?

140

Warum erhalte ich den folgenden Fehler?

Unsicherer Code wird möglicherweise nur angezeigt, wenn mit / unsafe kompiliert wird "?

Ich arbeite in C # und Visual Studio 2008 für die Programmierung unter Windows CE.

Gold
quelle

Antworten:

274

Um unsichere Codeblöcke zu verwenden, muss das Projekt mit eingeschaltetem Schalter / unsafe kompiliert werden.

Öffnen Sie die Eigenschaften für das Projekt, wechseln Sie zur BuildRegisterkarte und aktivieren Sie das Allow unsafe codeKontrollkästchen.

Guffa
quelle
4
Ich muss sagen, obwohl dies das Kompilieren des Builds ermöglicht, kann es dennoch nicht im Web veröffentlicht werden: /
Nick
5
@Nick: Ja, wenn Sie Code veröffentlichen, der dynamisch kompiliert werden soll, gelten die Projekteinstellungen nicht. Siehe stackoverflow.com/questions/16567197/...
Guffa
9
Beachten Sie, dass die Einstellungen zwischen Debug- und Release-Kompilierung unterschiedlich sein können. Das hat mich nur 20 Minuten meines Lebens gekostet.
LosManos
Einfache schnelle Lösung ... großartig.
Kalher
131

Hier ist ein Screenshot:

Unsicherer Screenshot

ََََََََ

Manoj Attal
quelle
8
Wichtig: Beachten Sie auch, dass dieser Screenshot für "Konfiguration: Aktiv (Debug)" ist. Sie müssen es wahrscheinlich auch für "Release" ändern, da Sie dies höchstwahrscheinlich veröffentlichen.
Doug S
4

Wahrscheinlich, weil Sie unsicheren Code verwenden.

Tun Sie irgendwo etwas mit Zeigern oder nicht verwalteten Assemblys?

Gerrie Schenck
quelle
4

Durchsuchen Sie Ihren Code nach unsafeBlöcken oder Anweisungen. Diese sind nur gültig, wenn mit kompiliert wird /unsafe.

Richard
quelle
3

Um unsichere Codeblöcke zu verwenden, öffnen Sie die Eigenschaften für das Projekt, wechseln Sie zur Registerkarte Erstellen und aktivieren Sie das Kontrollkästchen Unsicheren Code zulassen , kompilieren und ausführen.

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

Ausgabe:

Data is 10
Address is 1831848
Dipankar Ranjan Baisya
quelle
3

Für alle, die Rider verwenden, müssen Sie Ihr Projekt auswählen> Rechtsklick> Eigenschaften> Konfigurationen. Wählen Sie dann Debug und Release und aktivieren Sie für beide die Option "Unsicheren Code zulassen" .Bildschirmfoto

Tobias Brohl
quelle