2010-01-08 15 views

Répondre

200

Pour utiliser des blocs de code non sécurisés, le projet doit être compilé avec le commutateur/unsafe activé.

Ouvrez les propriétés du projet, accédez à l'onglet Build et cochez la case Allow unsafe code.

+3

Je dois dire que même si cela permet à la compilation de se compiler, elle ne l'autorise pas à être publiée sur le web:/ – Nick

+3

@Nick: Oui, si vous publiez du code à compiler dynamiquement, les paramètres du projet ne le sont pas ne s'applique pas. Voir http://stackoverflow.com/questions/16567197/asp-net-publish-web-application-with-unsafe-code – Guffa

+4

Notez que les paramètres peuvent différer entre Debug et Release compile. Cela m'a juste coûté 20 minutes de ma vie. – LosManos

4

Probablement parce que vous utilisez peu sûr code.

fais-tu quelque chose avec des pointeurs ou des ensembles non gérés quelque part?

3

Rechercher votre code f ou unsafe blocs ou instructions. Ceux-ci sont seulement valables est compilé avec /unsafe.

2

Pour utiliser les blocs de code dangereux, ouvrez les propriétés du projet, accédez à l'onglet Construire et vérifiez la de code à case à risque, puis compiler et exécuter.

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

Sortie:

Data is 10 
Address is 1831848 
113

Voici une capture d'écran:

Unsafe screenshot

+3

Important: Sachez également que cette capture d'écran est pour "Configuration: Active (Debug)". Vous aurez probablement aussi besoin de le changer pour "Release", car c'est probablement ce que vous publiez. –