Как извлечь визуальные иконки шаблонов студийного проекта?

Шаблон Visual Studio имеет значок параметра для отображения в диалоговом окне создания проекта. Это описано как

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
 <Name Package="{AAFFDC1E-A1C7-47bc-B3DC-9E685DF3959B}" ID="202" />
 <Description Package="{AAFFDC1E-A1C7-47bc-B3DC-9E685DF3959B}" ID="203" />
 <TemplateID>Microsoft.CSharp.ActivityDesignerLibrary</TemplateID>
 <Icon Package="{b3bae735-386c-4030-8329-ef48eeda4036}" ID="4600" />

Так что значит

Package="{b3bae735-386c-4030-8329-ef48eeda4036}" ID="4600"

Что такое пакет и идентификатор? Как создать BitmapSource из него?

3 ответа

Для Visual Studio 2015 значки шаблонов проектов CSharp находятся в...\Microsoft Visual Studio 14.0\VC#\VCSPackages\csproj.dll

Для справки значки шаблона Visual Basic расположены в...\Microsoft Visual Studio 14.0\VB\Bin\msvbprj.dll

Это не всеобъемлющее. Например, обратите внимание, что значки пакетов WPF не отображаются. Я все еще рассматриваю. Значок ID 4600 отображается в пакете CSharp, если это тот, который вам нужен.

Я искал значки шаблонов элементов, когда обнаружил этот вопрос.

Guid пакета guid - это раздел реестра, который сообщит вам, где находится файл значка (он также может быть встроен как ресурс в dll, согласно ответу Марти).

Быстрый способ найти тот, который вам нужен, это перейти к C:\Program Files (x86)\Microsoft Visual Studio 14.0 с помощью проводника Windows, а затем выполнить поиск *.png.

Обновление: Оказывается, вы можете загрузить весь набор значков - Visual Studio Image Library (ссылка на другой ответ SO).

После долгих поисков я нашел значки шаблонов WPF по адресу:

C:\Users\<you>\AppData\Local\Microsoft\VisualStudio\<version>\1033\ResourceCache.dll

Иконки шаблонов для некоторых (но не всех) моих расширений также присутствовали в этом файле. Вы можете увидеть значки шаблонов XNA в моем примере ниже из VS 2017.

Все эти значки имеют размер 32 пикселя, того же размера, что и в мастере создания нового проекта.

Это необычно, поскольку все встроенные значки шаблонов VS имеют размер не менее 48 пикселей, а многие достигают 256 пикселей.

Я перерыл каждую связанную с VS dll, о которой только мог подумать, и не нашел ни одной версии значков шаблонов WPF с высоким разрешением. Только 32 пикселя в формате .

Имя dll, местоположение, время файла и значки размером только 32 пикселя внутри нее убедительно предполагают, чтоResourceCache.dllне является первоисточником этих значков. Вполне возможно, что VS генерирует и кэширует эти значки шаблонов WPF во время автономных операций VSIX (т. е. сборок MEF), используя значки вcsproj.dllкак слои. <■>в левом нижнем углу значков приложений и пользовательских элементов управления отвечает этим требованиям.

К сожалению, это лучшее, что я смог найти. По крайней мере, значки 2012/2013 годов настолько просты, что их можно быстро воссоздать в Illustrator, если требуется высокое разрешение.

Другие вопросы по тегам