Как извлечь визуальные иконки шаблонов студийного проекта?
Шаблон 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, если требуется высокое разрешение.