我正在尝试为我的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中的图标会被忽略?
感谢您对此提供任何帮助。
答案 0 :(得分:3)
实际上可能工作。这是你不容易看到的东西。 Windows资源管理器有一个非常尴尬的习惯,即在图标缓存中存储程序的图标。因此,如果您运行带有一个图标的.exe,则会将该图标存储在缓存中。在需要时再次快速提供。优化,从.exe文件中挖出一个图标很慢。
重置缓存是可能的,但很尴尬,最好在superuser.com上询问一个好的程序。或者只是使用Visual Studio进行检查。文件+打开+文件,选择.exe,打开图标节点,然后双击该条目。