想要在 C# 中使用不同版本的不同图标

发布于 2024-07-06 21:54:52 字数 131 浏览 6 评论 0原文

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

We have a product but we are doing some rebranding so we need to be able to build and maintain two versions. I used resource files combined with some #if stuff to solve the strings, images, and whatever else, but the program icon is giving me trouble. I couldn't figure it out from msdn or a google search. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

萌能量女王 2024-07-13 21:54:52

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

<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>

Are you referring to the application icon? You can edit your project file manually and put in code similar to the following:

<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>
煮酒 2024-07-13 21:54:52

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

创建预构建步骤:

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

Create icon files named after your config. (E.g. DebugOld.app.ico DebugBranded.app.ico, ReleaseBranded.app.ico)

Create a pre-build step:

copy "$(ProjectDir)$(ConfigurationName).app.ico" "$(ProjectDir)app.ico"
溺渁∝ 2024-07-13 21:54:52

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

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

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

Set the icon in normal code, and you should be able to use the same techniques as you have elsewhere. You'll need both icons in the resources file (at least so I suspect) but it should work.

Alternatively, set a prebuild step to copy the appropriate icon into a common filename - e.g. copying debug.ico or release.ico into app.ico. A bit hacky, but I think it would work. That way you only end up with one icon in the finished binaries.

Yet another option: look into the build file and see how the icon is built in, then conditionalise it. Marc Gravell did this for references in MiscUtil - the project can be built targeting either .NET 2.0 or 3.5, depending on configuration. I suspect that resources could be conditionalised in a very similar way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文