C# 想要不同的图标和不同的C语言版本吗#

C# 想要不同的图标和不同的C语言版本吗#,c#,icons,resources,C#,Icons,Resources,我们有一个产品,但我们正在做一些更名,所以我们需要能够建立和维护两个版本。我使用了资源文件和一些#if的东西来解决字符串、图像和其他问题,但是程序图标给我带来了麻烦。我无法从msdn或谷歌搜索中找到它。谢谢 在普通代码中设置图标,您应该能够使用与其他地方相同的技术。您需要在资源文件中同时使用这两个图标(至少我认为是这样),但它应该可以工作 或者,设置预构建步骤,将适当的图标复制到公共文件名中,例如,将debug.ico或release.ico复制到app.ico中。有点老套,但我想它会管用的。这

我们有一个产品,但我们正在做一些更名,所以我们需要能够建立和维护两个版本。我使用了资源文件和一些#if的东西来解决字符串、图像和其他问题,但是程序图标给我带来了麻烦。我无法从msdn或谷歌搜索中找到它。谢谢

在普通代码中设置图标,您应该能够使用与其他地方相同的技术。您需要在资源文件中同时使用这两个图标(至少我认为是这样),但它应该可以工作

或者,设置预构建步骤,将适当的图标复制到公共文件名中,例如,将debug.ico或release.ico复制到app.ico中。有点老套,但我想它会管用的。这样,在完成的二进制文件中只会有一个图标


还有一个选项:查看构建文件,查看图标是如何内置的,然后对其进行条件化。Marc Gravell这样做是为了参考-根据配置,该项目可以针对.NET 2.0或3.5构建。我怀疑资源可能会以非常类似的方式进行条件化。

创建以配置命名的图标文件。(例如DebugOld.app.ico DebugBranded.app.ico、releasebraded.app.ico)

创建预构建步骤:

copy "$(ProjectDir)$(ConfigurationName).app.ico" "$(ProjectDir)app.ico"

您指的是应用程序图标吗?您可以手动编辑项目文件,并输入类似于以下内容的代码:

<PropertyGroup>
  <ApplicationIcon Condition=" '$(Configuration)' == 'Version1' ">Icon1.ico</ApplicationIcon>
  <ApplicationIcon Condition=" '$(Configuration)' == 'Version2' ">Icon2.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup Condition=" '$(Configuration)' == 'Version1' ">
  <Content Include="Icon1.ico" />
</ItemGroup>
<ItemGroup Condition=" '$(Configuration)' == 'Version2' ">
  <Content Include="Icon2.ico" />
</ItemGroup>

Icon1.ico
Icon2.ico