2008-10-21 8 views
3

Nous avons un produit mais nous faisons du rebranding donc nous devons être capables de construire et de maintenir deux versions. J'ai utilisé des fichiers de ressources combinés avec des trucs #if pour résoudre les chaînes de caractères, les images et tout le reste, mais l'icône du programme me pose problème. Je ne pouvais pas comprendre à partir de msdn ou une recherche google. Merci!veut des icônes différentes avec des constructions différentes en C#

Répondre

1

Définissez l'icône en code normal, et vous devriez être capable d'utiliser les mêmes techniques que vous avez ailleurs. Vous aurez besoin des deux icônes dans le fichier de ressources (du moins je le soupçonne) mais cela devrait fonctionner.

Vous pouvez également définir une étape de préconfiguration pour copier l'icône appropriée dans un nom de fichier commun (par ex. copier debug.ico ou release.ico dans app.ico. Un peu hacky, mais je pense que ça marcherait. De cette façon, vous finissez avec une seule icône dans les binaires finis.

Encore une autre option: regardez dans le fichier de construction et voyez comment l'icône est intégrée, puis conditionnez-la. Marc Gravell l'a fait pour les références dans MiscUtil - le projet peut être construit en ciblant .NET 2.0 ou 3.5, selon la configuration. Je pense que les ressources pourraient être conditionnées de manière très similaire.

1

Créez des fichiers d'icônes nommés d'après votre configuration. (Par ex DebugOld.app.ico DebugBranded.app.ico, ReleaseBranded.app.ico)

Créer une étape de pré-construction:

copy "$(ProjectDir)$(ConfigurationName).app.ico" "$(ProjectDir)app.ico" 
2

Vous pensez à l'icône de l'application? Vous pouvez modifier votre fichier de projet manuellement et entrer un code similaire à celui-ci:

<PropertyGroup> 
    <ApplicationIcon Condition=" '$(Configuration)' == 'Version1' ">Icon1.ico</ApplicationIcon> 
    <ApplicationIcon Condition=" '$(Configuration)' == 'Version2' ">Icon2.ico</ApplicationIcon> 
</PropertyGroup> 
<ItemGroup Condition=" '$(Configuration)' == 'Version1' "> 
    <Content Include="Icon1.ico" /> 
</ItemGroup> 
<ItemGroup Condition=" '$(Configuration)' == 'Version2' "> 
    <Content Include="Icon2.ico" /> 
</ItemGroup> 
Questions connexes