Visual studio 在VisualStudio中,是否有方法根据生成配置更改应用程序图标?

Visual studio 在VisualStudio中,是否有方法根据生成配置更改应用程序图标?,visual-studio,msbuild,Visual Studio,Msbuild,在我工作的地方,我们有一个公司使用的程序。然后,我们有同一个程序的另一个版本,使用不同的数据、不同的背景、标题文本等。这一切都很好,但由于两者在技术上是同一个应用程序,所以两者的应用程序图标都是相同的。我们希望每个版本有单独的图标 应用程序图标在项目文件中设置:MyIcon.ico 有没有办法根据构建配置使用不同的图标?我知道条件属性对于标记无效。我尝试右键单击项目,选择属性,然后单击应用程序选项卡。这是您可以更改图标文件的地方。但是,配置和平台下拉列表被禁用。这证实了,如果你可以为不同的版本设

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

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


有没有办法根据构建配置使用不同的图标?我知道
条件
属性对于
标记无效。

我尝试右键单击项目,选择属性,然后单击应用程序选项卡。这是您可以更改图标文件的地方。但是,配置和平台下拉列表被禁用。这证实了,如果你可以为不同的版本设置不同的图标文件,这不是一个简单的方法

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

我知道Condition属性对于 标签

不,你没有。注意到父标记了吗?这表明ApplicationIcon标记是MsBuild属性,因此条件属性在本例中有效

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

x86.ico
x64.ico
见鬼,如果您的文件名像上面那样解析为MsBuild属性值,您可以这样推断文件名:

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

$(平台).ico

编辑:假设上面使用并正确计算$(配置)属性值,而不是$(平台)

OK,这确实有效。我不知道我做了什么,但是当我添加
条件
属性时,我的项目不会加载。一定是出了什么事。谢谢