В дизайнере 2005 студии появился довольно удобный диалог Select Resource, который позволяет выбрать ресурс (например bitmap) из resx файла находящегося в проекте, и дизайнер добавит в код ссылку на этот ресурс (а не скопирует его в resx файл ассоциированный с редактируемым файлом). Всё хорошо, но этот Select Resource находит только дефолтовый Resources.resx из папки Properties и resx файлы находящиееся в корневой папке проекта. Рефлектором нашёл место, где происходит поиск resx файлов
// internal class ResourcePickerService
// Name: Microsoft.VisualStudio.Windows.Forms.ResourcePickerService
// Assembly: Microsoft.VisualStudio.Windows.Forms, Version=2.0.0.0
internal class ResourcePickerService
{
// ...
internal Dictionary<string, string> GetProjectResXFileNames()
{
// ...
foreach (ProjectItem item2 in project1.ProjectItems)
{
if (!this.TypeFile.Equals(new Guid(item2.Kind)))
{
continue;
}
text1 = item2[1];
if (text1.EndsWith(".resx"))
{
dictionary1.Add(ResourcePickerService.GetResXName(text1), text1);
Property property2 = item2.Properties.Item("CustomTool");
if (property2.Value.Equals(string.Empty))
{
property2.Value = "ResXFileCodeGenerator";
}
}
}
// ...
}
// ...
}
то есть, обходят только файлы находящиеся в корне проекта, не проваливаясь в папки.
Ни кто не знает почему это так реализованно. Чем не угодили resx файлы не из корня проекта.