如何更改不同构建配置的可执行文件名和图标



我想为我的WPF应用程序的不同构建提供不同的图标和可执行文件名。原因是我有两个不同版本的应用程序,它们略有不同(只有几个项目被禁用,颜色更改等(。所以我使用了两个不同的构建配置和app.config转换来实现这一点。例如,在我的转换中,我有几个像这样的转换

<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="IconsappplicationIcon2.ico"/> 
</appSettings> 
</configuration> 

然后在我的应用程序中,我读取了该属性appTitle或appIcon的配置设置,并在此基础上对应用程序进行了一些外观或其他更改。

但是我也可以用它来对应用程序图标本身进行更改吗(嵌入EXE的图标,或者EXE文件的名称?

除了这里链接的答案https://stackoverflow.com/a/32977405/1462656要在编译时更改应用程序可执行文件的名称,您必须将以下内容添加到属性组中

<AssemblyName>Name For Executable</AssemblyName>

所以属性组应该有这两个附加

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Your Configuration Name|x64'">
<ApplicationIcon>IconsYourIconFilename.ico</ApplicationIcon>
<AssemblyName>Your Application Name</AssemblyName>
...
</PropertyGroup>

编辑:我注意到,当您右键单击并从文件资源管理器查看可执行文件的属性详细信息时,这对产品名称或文件描述没有任何影响。为了对产品和文件描述也有不同的值,请遵循

  • 在项目配置的Build属性中添加条件编译符号
  • 在AssemblyInfo.cs中执行以下操作
#if APPONE
[assembly: AssemblyTitle("App 1")]
#else
[assembly: AssemblyTitle("App 2")]
#endif

最新更新