我无法在VB.Net winforms项目中将一些Crystal Reports组织成一个更易于管理的结构。
这些报告都默认为根命名空间(在本例中为“Reports”),然后是“analyzeKS3SubjectSummary.rpt”,“analysisKS4SubjectSummary.rpt”等名称。
为了整理这一点,我为报告类设置了名称空间,并在报告的“自定义工具命名空间”属性上设置了名称空间。它们的结构如下:
Reports.Analysis.KS3.SubjectSummary
Reports.Analysis.KS4.SubjectSummary
命名空间工作正常,但如果报告具有与上面相同的名称。该项目不会构建,说明两个嵌入的资源不能具有相同的名称。
然后显示“Reports.SubjectSummary”作为错误描述,但没有这样的资源。看起来它试图在构建期间将它们放回根命名空间。
知道如何强制嵌入式资源使用给定的命名空间吗?
P.S。显然这适用于C#,无需修改。但我需要它与VB合作。
答案 0 :(得分:1)
既然你提到这适用于C#,那么我怀疑该项目的“Root命名空间”正在影响你的“自定义工具命名空间”。
自定义工具命名空间“附加”到项目的根命名空间。您可能没有考虑到这一点。当我怀疑名称空间问题或命名空间构建错误时,我通常会转向“对象浏览器”。
打开“对象浏览器”并查看项目的命名空间。希望命名空间问题是显而易见的。
如果项目的根命名空间是“Reports”,而您的自定义工具命名空间是“Reports.Analysis.KS4.SubjectSummary”,那么完整的命名空间是“Reports.Reports.Analysis.KS4.SubjectSummary”。 C#项目没有根命名空间。他们有一个“默认命名空间”,这是不一样的。
要解决此问题,请将自定义工具命名空间更改为“Analysis.KS4.SubjectSummary”或清除项目的根命名空间。我建议更改自定义工具命名空间。
答案 1 :(得分:0)
与AMissico达成一致,我总是从VB.NET项目属性中清除根名称空间,并在代码中明确处理它。