C# 为每个生成配置设置不同的应用程序

C# 为每个生成配置设置不同的应用程序,c#,visual-studio-2010,icons,csproj,C#,Visual Studio 2010,Icons,Csproj,我正在尝试为我的C#项目的每个构建配置设置不同的图标(使用VS 2010 pro)。一个配置用于不同的客户,因此该配置应使用不同的图标 我不确定这在csproj文件中为什么不起作用: <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> ...blah... <ApplicationIcon>Images\RegularIcon.ico</Ap

我正在尝试为我的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>
<PropertyGroup>
    <ApplicationIcon>Images\foo.ico</ApplicationIcon>
</PropertyGroup>

……诸如此类。。。
Images\con.ico
……诸如此类。。。
Images\CustomerIcon.ico
它不起作用。我不太确定我是否在正确的轨道上

一件令人沮丧的事。。。如果我在Visual Studio中的属性->应用程序选项卡中设置图标,它会在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>
<PropertyGroup>
    <ApplicationIcon>Images\foo.ico</ApplicationIcon>
</PropertyGroup>

Images\foo.ico
为什么会遵守此匿名PropertyGroup中指定的图标,而忽略我的条件PropertyGroup中的图标

我非常感谢您对我的帮助。

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

重置缓存是可能的,但很麻烦,最好向superuser.com询问一个好的过程。或者直接用VisualStudio检查一下。File+Open+File,选择.exe,打开“图标”节点并双击条目