visual studio resource read how archivo c# icons resources

studio - quiere diferentes iconos con diferentes compilaciones en C#



resources file c# (3)

¿Te refieres al ícono de la aplicación? Puede editar su archivo de proyecto manualmente y ponerlo en un código similar al siguiente:

<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>

Tenemos un producto, pero estamos haciendo un cambio de marca, por lo que debemos ser capaces de crear y mantener dos versiones. Usé archivos de recursos combinados con algunas cosas #if para resolver cadenas de caracteres, imágenes y todo lo demás, pero el ícono del programa me está causando problemas. No pude resolverlo desde msdn o una búsqueda en Google. ¡Gracias!


Crea archivos de iconos con el nombre de tu configuración. (Por ejemplo, DebugOld.app.ico DebugBranded.app.ico, ReleaseBranded.app.ico)

Crea un paso previo a la construcción:

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


Establezca el ícono en el código normal, y debería poder usar las mismas técnicas que en cualquier otra parte. Necesitará ambos iconos en el archivo de recursos (al menos eso sospecho) pero debería funcionar.

De forma alternativa, establezca un paso previo a la compilación para copiar el icono apropiado en un nombre de archivo común, por ejemplo, copiando debug.ico o release.ico en app.ico. Un poco hacky, pero creo que funcionaría. De esta forma solo terminas con un ícono en los binarios terminados.

Otra opción más: mire en el archivo de compilación y vea cómo se integra el ícono, luego condicionalícelo. Marc Gravell hizo esto para obtener referencias en MiscUtil : el proyecto se puede construir con objetivos .NET 2.0 o 3.5, según la configuración. Sospecho que los recursos podrían estar condicionados de una manera muy similar.