Quiero tener un ícono diferente y un nombre de archivo ejecutable para diferentes compilaciones de mi aplicación WPF. La razón es que tengo dos versiones diferentes de la aplicación que son ligeramente diferentes (solo algunos elementos deshabilitados, cambios de color, etc.) Así que usé dos configuraciones de compilación diferentes y las transformaciones App.config para hacer eso, por ejemplo, en mi transformación tengo varias transformaciones como esta
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <appSettings xdt:Transform="Replace"> <add key="appTitle" value="Application Name 2"/> <add key="appIcon" value="Icons\appplicationIcon2.ico"/> </appSettings> </configuration>Y luego, en mi aplicación, leo la configuración de esa propiedad, appTitle o appIcon, y realizo algunos cambios estéticos o de otro tipo en la aplicación en función de eso.
Pero, ¿puedo usar esto también para aplicar un cambio en el ícono de la aplicación (el que se incrusta en el EXE o el nombre del archivo EXE?
Además de la respuesta vinculada aquí https://stackoverflow.com/a/32977405/1462656 Para cambiar el nombre ejecutable de la aplicación en la compilación, también debe agregar lo siguiente al grupo de propiedades
<AssemblyName>Name For Executable</AssemblyName>Así que el grupo de propiedades debería tener estas dos adiciones
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Your Configuration Name|x64'"> <ApplicationIcon>Icons\YourIconFilename.ico</ApplicationIcon> <AssemblyName>Your Application Name</AssemblyName> ... </PropertyGroup>EDITAR: Noté que esto no tiene ningún efecto en el Nombre del producto o la Descripción del archivo como se ve cuando hace clic con el botón derecho y ve los detalles de la propiedad del ejecutable desde el Explorador de archivos. Para tener también valores diferentes para Producto y Descripción de archivo, haga lo siguiente
#if APPONE [assembly: AssemblyTitle("App 1")] #else [assembly: AssemblyTitle("App 2")] #endif