У меня есть следующий файл: Foo.cs
с классом Foo
внутри.Кажется, я не могу найти правильный способ сохранить мои файлы ресурсов (resx) организованными позади их соответствующих файлов.
Если я создаю Foo.resx, файл ресурсов будет красиво свернути аккуратно за классом Foo.cs.Это, однако, вызывает проблемы, потому что стандартный пользовательский инструмент, который генерирует код, пытается создать другой класс Foo
(посмотрите на Foo.Designer.cs: internal class Foo { ... }
).Если мой файл Foo.cs еще не содержит класс Foo
, это прекрасно работает (без коллизии имен).
Чтобы исправить коллизию имен, я попытался дать ему собственное пространство именMyProj.Resources и используйте псевдоним для его идентификации: using R = MyProj.Resources.Foo;
Это все еще вызывает проблемы, потому что у автогенератора есть проблема с правильным созданием ResourceManager
.
Если I, вместо этого,назовите его как-то по FooResx.resx
, оно не будет автоматически свернуто за файлом Foo.cs
.Вместо этого он находится в обозревателе решений прямо под ним.Зайдя в файл MSBuild (.csproj) и добавив тег <DependentUpon>
, Visual Studio аккуратно уберет мой файл FooResx.resx.Однако на самом деле я не могу использовать какие-либо ресурсы из этого файла, потому что у автоматически сгенерированного кода есть проблема с правильным созданием ResourceManager
.
В принципе, есть ли способфайлы ресурсов (resx) сгибаются за файлом cs и по-прежнему работают должным образом с помощью стандартного пользовательского инструмента (ResXFileCodeGenerator
)?
Я понимаю, что всегда могу поместить все свои ресурсы в файлв папке свойств: resources.resx.Я пытаюсь организовать их лучше, чем это.
Обновление:
Я решил вручную отредактировать автоматически сгенерированный код и сделать его частичным.Это позволило скомпилировать код, но я все равно столкнулся с той же проблемой (проблема № 2).Кажется, что если файл ресурсов свернут (вручную или автоматически) другим файлом кода, то ResourceManager
не может найти файл *.resource
.Это может быть проблемой, которую мне придется поднять с Microsoft Connect по поводу инструмента ResXFileCodeGenerator
.Он должен быть в состоянии найти правильный файл *.resource
, когда он свернут за другими файлами.