如何在Visual Studio中将自定义图标添加到解决方案资源管理器

洛朗·特雷吉耶

我试图将自定义图标添加到Visual Studio中的解决方案资源管理器中,就像FileIcons扩展所做的一样。

我想我已经为Visual Studio做了一切正确的工作,以将新图标与以.d.di扩展名结尾的文件相关联,但是Visual Studio在解决方案资源管理器中仍然不显示任何图标。

这是使用生成的清单ManifestFromResources.exe

<?xml version="1.0" encoding="utf-8"?>
<!-- This file was generated by the ManifestFromResources tool.-->
<!-- Version: 14.0.50929.2 -->
<ImageManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/ImageManifestSchema/2014">
  <Symbols>
    <String Name="Resources" Value="/VisualDLS;Component/Icons" />
    <Guid Name="AssetsGuid" Value="{872b4702-eabf-444b-b6b3-96dc64531f74}" />
    <ID Name="d" Value="0" />
  </Symbols>
  <Images>
    <Image Guid="$(AssetsGuid)" ID="$(d)">
      <Source Uri="$(Resources)/d.png">
        <Size Value="32" />
      </Source>
    </Image>
  </Images>
  <ImageLists />
</ImageManifest>

这是pkgdef文件:

[$RootKey$\ShellFileAssociations\.d]
"DefaultIconMoniker"="872b4702-eabf-444b-b6b3-96dc64531f74:0"
[$RootKey$\ShellFileAssociations\.di]
"DefaultIconMoniker"="872b4702-eabf-444b-b6b3-96dc64531f74:0"

在我的扩展程序的vsixmanifest中,pkgdef文件被定义为具有以下属性的资产:

  • 类型: Microsoft.VisualStudio.VsPackage
  • 资源: File on filesystem
  • 路径:(icons.pkgdef显然,这是我如何命名我的pkgdef文件)

关于文件属性,图标图像文件被设置为资源,而图像清单和pkgdef文件都被设置为要包含在VSIX中的内容。

如果我尝试在图像清单中使用KnownMoniker,则Visual Studio会正确拾取它并正确显示图标。如果事先安装,我什至可以从FileIcons扩展中引用图标别名。但是,一旦我尝试使用自己的清单和图标,就什么也没有显示。我在这里可能做错了什么,但似乎看不到确切的含义。

洛朗·特雷吉耶

对于将来可能会偶然发现相同问题的任何人,我都知道我的问题所在。在最初的测试中,我一定做错了什么,导致Visual Studio在资源管理器中未在.d文件旁边显示任何图标之后,即使在纠正了我做错的所有事情之后,它可能仍会继续这样做,因为某个地方有图标缓存。用另一个扩展名重命名文件,然后将其重命名为原始名称后,新图标开始显示。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何自定义Visual Studio解决方案资源管理器的右键菜单选项?

如何在Visual Studio的解决方案资源管理器中添加文件?

在VS 2017自定义项目系统中,如何在解决方案资源管理器中将项目项设置为粗体?

如何在Visual Studio中将解决方案资源管理器与当前文件同步?

Visual Studio .Net解决方案资源管理器图标

如何将自定义文件夹树添加到Windows 10文件资源管理器侧面板?

Visual Studio解决方案资源管理器-针对资产文件观察到的不同图标

如何在 Atmel Studio 中显示解决方案资源管理器

如何在Visual Studio 2013解决方案资源管理器中获取文件路径?

如何在Visual Studio 2010的解决方案资源管理器中找到文件?

Visual Studio 2013:如何在解决方案资源管理器中显示活动文件?

更改Visual Studio解决方案资源管理器的字体大小

Visual Studio解决方案资源管理器“不输入”符号含义吗?

Visual Studio解决方案资源管理器无法找到所有内容

将自定义项模板添加到 Visual Studio 解决方案

如何禁用自动隐藏解决方案资源管理器(Visual Studio 2017)

这个红色正方形图标在Visual Studio 2013解决方案资源管理器中是什么意思?

在我的Visual Studio解决方案资源管理器中,前面的红色小减号图标是什么意思?

如何在Azure数据资源管理器中将自定义键/值对字符串解析为JSON对象?

如何在Visual Studio 2019中的解决方案资源管理器中打开包含文件的文件夹

如何在Visual Studio 2010中使用键盘快捷方式关闭解决方案资源管理器面板?

如何在Visual Studio解决方案资源管理器中查找打开的Xamarin Android或iOS csproj文件

在解决方案资源管理器下的Visual Studio解决方案中创建的文件夹未出现在源代码管理资源管理器中

无法在Visual Studio 2017解决方案资源管理器中编辑.csproj文件

在Visual Studio 2015解决方案资源管理器中未显示bower.json

Visual Studio 2013更新4,解决方案资源管理器中的重复条目

在Visual Studio 2015中更改解决方案资源管理器工具窗口的标题

Visual Studio-导航到解决方案资源管理器的快捷方式

解决方案资源管理器不更新Visual Studio 2015中的团队项目