Как правильно использовать пространства имен в vb.net со встроенными ресурсами? - PullRequest
6 голосов
/ 17 ноября 2010

У меня возникают проблемы с организацией некоторых Crystal Reports в более управляемую структуру в проекте winforms VB.Net.

Все отчеты по умолчанию помещались в корневое пространство имен (в данном случае «Отчеты»), а затемс именами, такими как 'analysisKS3SubjectSummary.rpt', 'analysisKS4SubjectSummary.rpt' и т. д.

Чтобы привести это в порядок, я установил пространства имен для классов отчетов и в свойстве «Пространство имен пользовательских инструментов» отчета.Они структурированы так:

Reports.Analysis.KS3.SubjectSummaryReports.Analysis.KS4.SubjectSummary

Пространства имен работали нормально, но если отчет имеет то же имя, что и выше.Проект не будет построен, заявив, что два встроенных ресурса не могут иметь одинаковое имя.

Затем он отображает «Reports.SubjectSummary» в качестве описания ошибки, но такого ресурса нет.Похоже, он пытается вернуть их в корневое пространство имен во время сборки.

Есть идеи, как заставить встроенные ресурсы использовать соответствующие им пространства имен?

PS По-видимому, это работает в C # без изменений.Но мне нужно, чтобы он работал с VB.

Ответы [ 2 ]

1 голос
/ 29 декабря 2010

Поскольку вы упомянули, что это работает для C #, то я подозреваю, что «корневое пространство имен» проекта влияет на ваше «пространство имен пользовательских инструментов».

Пространство имен пользовательских инструментов «добавляется» к корневому пространству имен проекта.Возможно, вы не принимаете это во внимание.Я обычно обращаюсь к «Обозревателю объектов», когда подозреваю проблемы с пространством имен или ошибки построения пространства имен.

Откройте «Обозреватель объектов» и проверьте пространства имен вашего проекта.Надеемся, что проблема с пространством имен очевидна.

Если корневое пространство имен проекта - «Отчеты», а пространство имен настраиваемого инструмента - «Reports.Analysis.KS4.SubjectSummary», тогда полное пространство имен - «Reports.Reports.Analysis.KS4.SubjectSummary».Проекты C # не имеют корневого пространства имен.У них есть «Пространство имен по умолчанию», которое не совпадает.

Чтобы решить эту проблему, измените пространство имен настраиваемого инструмента на «Analysis.KS4.SubjectSummary» или очистите корневое пространство имен проекта.Я предлагаю изменить пространство имен пользовательского инструмента.

0 голосов
/ 08 марта 2011

Согласившись с AMissico, я всегда очищаю корневое пространство имен из свойств проекта VB.NET и явно обрабатываю его в коде.

...