如何在vb.net中使用嵌入式资源正确使用名称空间?

时间:2010-11-17 11:01:27

标签: .net vb.net crystal-reports build embedded-resource

我无法在VB.Net winforms项目中将一些Crystal Reports组织成一个更易于管理的结构。

这些报告都默认为根命名空间(在本例中为“Reports”),然后是“analyzeKS3SubjectSummary.rpt”,“analysisKS4SubjectSummary.rpt”等名称。

为了整理这一点,我为报告类设置了名称空间,并在报告的“自定义工具命名空间”属性上设置了名称空间。它们的结构如下:

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

命名空间工作正常,但如果报告具有与上面相同的名称。该项目不会构建,说明两个嵌入的资源不能具有相同的名称。

然后显示“Reports.SubjectSummary”作为错误描述,但没有这样的资源。看起来它试图在构建期间将它们放回根命名空间。

知道如何强制嵌入式资源使用给定的命名空间吗?

P.S。显然这适用于C#,无需修改。但我需要它与VB合作。

2 个答案:

答案 0 :(得分:1)

既然你提到这适用于C#,那么我怀疑该项目的“Root命名空间”正在影响你的“自定义工具命名空间”。

自定义工具命名空间“附加”到项目的根命名空间。您可能没有考虑到这一点。当我怀疑名称空间问题或命名空间构建错误时,我通常会转向“对象浏览器”。

打开“对象浏览器”并查看项目的命名空间。希望命名空间问题是显而易见的。

如果项目的根命名空间是“Reports”,而您的自定义工具命名空间是“Reports.Analysis.KS4.SubjectSummary”,那么完整的命名空间是“Reports.Reports.Analysis.KS4.SubjectSummary”。 C#项目没有根命名空间。他们有一个“默认命名空间”,这是不一样的。

要解决此问题,请将自定义工具命名空间更改为“Analysis.KS4.SubjectSummary”或清除项目的根命名空间。我建议更改自定义工具命名空间。

答案 1 :(得分:0)

与AMissico达成一致,我总是从VB.NET项目属性中清除根名称空间,并在代码中明确处理它。