如何识别 C# 应用程序中使用的图标文件的名称?

How to identify the name of the icon file used in a C# app?

我有一个 C# WPF 应用程序。它有 2 个图标文件作为资源 - 1 个用于创建发布版本,另一个用于测试版本。它目前正在使用 4.7.2 - 但计划很快将其迁移到 CORE。

生成构建时,我通过属性-应用程序页面设置图标文件。

由于我找不到在构建时可靠地有条件地设置桌面图标文件的方法,我想我会在运行时简单地检查图标文件以查看它是否是构建类型的正确图标文件。我不想使用错误的图标文件。

我为什么要关心?有许多用户的桌面上可能同时有测试版和实时版。我想确保测试版本不会与正式版本混淆。

它可能看起来不多,但通常情况下,远程支持人员和他们中的大多数人不会知道测试版本 - 因此需要避免任何混淆。

如果您有比在构建时设置图标更好的方式来设置桌面,我们也将不胜感激。

我可以使用 ExtractAssocatedIcon() 获取图标 - 但这并不表示图标文件的名称。

您可以执行以下操作在构建时设置图标。

以下是一些步骤:

  1. 创建您的项目并添加您的 .ico 个文件。

  1. 右键单击该项目并 select Unload Project

  1. 右键单击卸载的项目并select Edit Project File

  1. 在项目文件中,您的各种构建会有 <PropertyGroup> xml 标签。

为每个构建配置设置 <ApplicationIcon> xml 元素。

现在,当您 运行 在 DebugRelease 中构建时,使用的 .ico 文件将会改变。