在Visual Studio中有没有办法根据构建配置更改应用程序图标?

时间:2014-01-08 18:13:52

标签: visual-studio msbuild

在我工作的地方,我们有一个由我们公司使用的程序。然后,我们使用不同的数据和不同的背景,标题文本等相同的程序的另一个版本。这一切都很好,但由于两者在技术上是相同的应用程序,因此应用程序图标对于两者都是相同的。我们希望每个版本都有单独的图标。

应用程序图标在项目文件中设置:<ApplicationIcon>MyIcon.ico</ApplicationIcon>

有没有办法根据构建配置设置不同的图标?我知道Condition属性对<ApplicationIcon>代码无效。

2 个答案:

答案 0 :(得分:2)

  

我知道Condition属性对于    标签

不,你没有。注意父&lt; PropertyGroup /&gt;标签?这表明ApplicationIcon标记是MsBuild属性,因此在这种情况下Condition属性有效。

<PropertyGroup>
  <ApplicationIcon Condition=" '$(Platform)' == 'x86' ">x86.ico</ApplicationIcon>
  <ApplicationIcon Condition=" '$(Platform)' == 'x64' ">x64.ico</ApplicationIcon>
</PropertyGroup>

哎呀,如果你的文件名解析为像上面那样的MsBuild属性值,你可以像这样推断文件名:

<PropertyGroup>
  <ApplicationIcon>$(Platform).ico</ApplicationIcon>
</PropertyGroup>

编辑:假装上述用途并正确评估$(配置)属性值而不是$(平台)

答案 1 :(得分:0)

我尝试右键单击项目,选择“属性”,然后单击“应用程序”选项卡。您可以在此处更改图标文件。但是,“配置和平台”下拉列表已禁用。这证实了如果可以为不同的版本提供不同的图标文件,那么这将不是一种简单的方法。

如果您使用任何脚本来自定义构建,您可以“预处理”*.csproj文件,根据所需的构建设置ApplicationIcon,然后构建项目。