5

我们有一个产品,但我们正在进行一些品牌重塑,因此我们需要能够构建和维护两个版本。我使用资源文件和一些#if 东西来解决字符串、图像和其他任何问题,但是程序图标给我带来了麻烦。我无法从 msdn 或谷歌搜索中弄清楚。谢谢!

4

3 回答 3

4

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

<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>
于 2008-10-21T21:37:09.763 回答
2

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

创建预构建步骤:

copy "$(ProjectDir)$(ConfigurationName).app.ico" "$(ProjectDir)app.ico"
于 2008-10-21T21:36:47.643 回答
1

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

或者,设置一个预构建步骤,将适当的图标复制到一个通用文件名中——例如,将 debug.ico 或 release.ico 复制到 app.ico。有点hacky,但我认为它会工作。这样,您最终只会在完成的二进制文件中得到一个图标。

还有一个选择:查看构建文件并查看图标是如何内置的,然后对其进行条件化。Marc Gravell 这样做是为了在MiscUtil中引用- 该项目可以针对 .NET 2.0 或 3.5 构建,具体取决于配置。我怀疑资源可以以非常相似的方式设置条件。

于 2008-10-21T21:34:02.797 回答