为每个生成配置设置不同的应用程序图标

本文关键字:应用程序 图标 设置 配置 | 更新日期: 2023-09-27 18:35:26

我正在尝试为我的C#项目的每个构建配置设置不同的图标(使用VS 2010 pro)。 一个配置适用于不同的客户,因此该配置应使用不同的图标。

我不确定为什么这在 csproj 文件中不起作用:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    ...blah...
    <ApplicationIcon>Images'RegularIcon.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release-Customer|AnyCPU' ">
    ...blah...
    <ApplicationIcon>Images'CustomerIcon.ico</ApplicationIcon>
</PropertyGroup>

它不起作用。 不太确定我是否走在正确的轨道上。

一件令人沮丧的事情...如果我在 Visual Studio 中的"属性->应用程序"选项卡中设置图标,它会在 csproj 文件中创建以下内容:

<PropertyGroup>
    <ApplicationIcon>Images'foo.ico</ApplicationIcon>
</PropertyGroup>

为什么此匿名属性组中指定的图标被遵守,而我的条件属性组中的图标被忽略?

我感谢对此的任何帮助。

为每个生成配置设置不同的应用程序图标

它可能确实有效。 这只是你不容易看到的东西。 Windows资源管理器有一个非常尴尬的习惯,即将程序的图标存储在图标缓存中。 因此,如果您运行带有一个图标的.exe,那么它会将该图标存储在缓存中。 以后再次需要时可以快速可用。 优化,从.exe文件中挖掘图标很慢。

重置缓存是可能的,但很尴尬,最好在 superuser.com 询问一个好的程序。 或者只是用Visual Studio检查一下。 文件 + 打开 + 文件,选择.exe,打开"图标"节点并双击该条目。

你可能想试试这个:

对于 Windows 10:

IE4uinit.exe -show

对于 Windows 8 及更早版本:

ie4uinit.exe -ClearIconCache

取自下方。还有其他一些提示

https://www.winhelponline.com/blog/refresh-icon-cache-windows-7-quickly/