2010-03-03 4 views
7

J'ai trois configurations différentes sur mon projet, tous les trois ne nécessitent pas tous les fichiers à construire dans l'application. En fait, je préférerais que je puisse exclure ces fichiers de la construction, ce qui rendrait mon application un peu plus légère.Exclure des fichiers entiers basés sur la configuration à partir de la construction dans VS2008

Ce que je cherche est #if MYCONFIG ou #if DEBUG déclaration mais pour les fichiers. J'ai déjà lu que cela peut être accompli en éditant manuellement le fichier csproj, mais je ne peux plus le trouver ... et existe-t-il d'autres façons?

Répondre

11

Il y a deux façons différentes: Dans vos fichiers csproj, vous aurez des sections qui ressemblent à ceci:

<ItemGroup> 
    <Compile Include="Helper.cs" /> 
    <Compile Include="Properties\AssemblyInfo.cs" /> 
</ItemGroup> 

Ce que vous pouvez faire est de mettre en place une nouvelle configuration du projet (Construire le menu, configuration Manager, sélectionner New de la configuration de solution active déroulante), puis modifier manuellement le noeud ItemGroup à ceci:

<ItemGroup Condition=" '$(Configuration)' == 'MyNewConfiguration' "> 
    <Compile Include="Helper.cs" /> 
    <Compile Include="Properties\AssemblyInfo.cs" /> 
</ItemGroup> 

La deuxième méthode, comme vous l'avez mentionné dans votre question, consiste à utiliser des symboles de débogage conditionnels. En haut de votre dossier, que la déclaration

#if MYDEBUGSYMBOL 

et au fond ont

#endif 

alors vous pouvez définir les symboles de débogage; Cliquez avec le bouton droit sur votre fichier de projet, sélectionnez Propriétés, passez à l'onglet Générer et entrez le symbole de débogage dans la zone de texte Symboles de compilation conditionnelle.

Je serais probablement fidèle à la première méthode.

+0

Est-ce également possible avec les anciens fichiers de projet VS2008 pour les projets C? – Christian

Questions connexes