2009-12-29 7 views
0

Je tente de faire en sorte que notre application puisse se comporter différemment en fonction de la présence d'une directive de préprocesseur. J'ai lu que vous pouvez créer des configurations de construction pour définir différentes directives de préprocesseur en fonction de la construction que vous faites. Eh bien, je ne vois rien dans Visual Studio pour le faire .. Je sais comment le faire depuis la ligne de commande, mais pas comment le faire dans l'environnement automatisé de VS 2008.Compilation conditionnelle dans Visual Studio (C#)

Quelqu'un peut-il me dire comment créer une nouvelle configuration de construction dans laquelle des directives de préprocesseur sont définies?

De plus, pas sûr si elle n'a rien à voir avec elle, mais notre projet est un site ASP.Net

+0

OMI, cela sonne comme il serait mieux fait soit par web.config, ou quelque chose comme IoC/DI –

+0

. notre web.config est dans le contrôle de la source Nous voulons pouvoir tester chaque configuration sans changer les fichiers dans le contrôle de la source – Earlz

+2

Vous avez peut-être du mal à trouver des informations à ce sujet, puisqu'il n'y a pas de préprocesseur en C#. Vous cherchez "compilation conditionnelle". –

Répondre

6

Je ne vois même pas un moyen de contrôler le symbole DEBUG, et il est un site ASP.Net

Ok, il y a le problème. L'option de site Web ASP.net vous donne beaucoup moins de contrôle sur les versions, etc. car il n'utilise même pas un fichier de projet.

S'il vous est possible de basculer, passez à une application Web ASP.net. Une application Web se comporte beaucoup plus comme un projet C# typique (vous avez un fichier de projet, et le contenu du fichier csproj contrôle ce qui se trouve dans l'application au lieu de simplement la structure de répertoire, etc

Après avoir converti, vous devriez voir les options que vous attendez

est ici un lien avec les directions pour la conversion. How To Convert ASP.NET Website to ASP.NET Web Application

6

Si vous cliquez droit sur le projet et sélectionnez « Propriétés », puis sélectionnez l'onglet Générer, vous peut entrer des symboles de compilation personnalisés dans "Symboles de compilation conditionnelle".

Par exemple, si votre code ressemble à ceci:

#if DEBUG 
// do something 
#else 
// do something else 
#end 

Vous pouvez définir "Debug" comme symbole de compilation conditionnelle.

Vous pouvez définir des valeurs différentes pour différentes configurations de construction, en modifiant la liste déroulante "Configuration".

+0

c'est ce que je lis partout et la seule chose que je vois est "démarrer l'action" "target framework" "construire l'action de la solution" "validation de l'accessibilité" .. rien sur le préprocesseur n'est listé Je peux trouver. @your edit: il n'existe pas d'onglet ou quoi que ce soit pour entrer "symboles de compilation conditionnels" – Earlz

+0

Intéressant, de quel type de projet s'agit-il? Sur mon onglet de construction, il montre des sections comme "Général", "Erreurs et avertissements", "Traiter les avertissements comme des erreurs" et "Sortie". La section "Symboles de compilation conditionnelle" est sous Général. –

+0

Je ne vois même pas un moyen de contrôler le symbole DEBUG. et c'est un site Web ASP.Net. Je posterai une capture d'écran. – Earlz

Questions connexes