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

Posted

技术标签:

【中文标题】如何识别 C# 应用程序中使用的图标文件的名称?【英文标题】:How to identify the name of the icon file used in a C# app? 【发布时间】:2022-01-15 12:42:29 【问题描述】:

我找到了很多答案,但似乎没有一个可以解决这个问题。

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

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

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

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

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

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

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

谢谢!

【问题讨论】:

【参考方案1】:

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

这里有一些步骤:

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

    右键单击项目并选择Unload Project

    右键单击卸载的项目并选择Edit Project File

    在项目文件的内部会有<PropertyGroup> xml 标签用于您的各种构建。

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

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

【讨论】:

很好的答案——除了你少了一步。 ApplicationIcon 有一个条目,它不是配置的一部分。在它查看配置中的值之前,我必须将其注释掉。之后,效果很好。

以上是关于如何识别 C# 应用程序中使用的图标文件的名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 在 Autocad 文件中获取标签名称

如何在移动应用程序的cab文件中添加图标文件?

c#中如何判断一个路径是目录还是文件

wpf 中使用 ttf

如何在不使用 IDE 的情况下更改 C# 程序的图标?

如何修改C# winform程序图标