为每个构建配置设置不同的ApplicationIcon

时间:2012-05-25 18:01:36

标签: c# visual-studio-2010 icons csproj

我正在尝试为我的C#项目的每个构建配置设置一个不同的Icon(使用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中使用Properties-&gt; Application选项卡设置图标,它会在csproj文件中创建它:

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

为什么要遵守此匿名PropertyGroup中指定的图标,但条件PropertyGroup中的图标会被忽略?

感谢您对此提供任何帮助。

1 个答案:

答案 0 :(得分:3)

实际上可能工作。这是你不容易看到的东西。 Windows资源管理器有一个非常尴尬的习惯,即在图标缓存中存储程序的图标。因此,如果您运行带有一个图标的.exe,则会将该图标存储在缓存中。在需要时再次快速提供。优化,从.exe文件中挖出一个图标很慢。

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