2010-11-17 5 views
5

Ich habe Probleme, einige Crystal Reports in einer besser verwaltbaren Struktur in einem VB.Net winforms-Projekt zu organisieren.Wie verwende ich Namespaces in vb.net mit eingebetteten Ressourcen richtig?

Die Berichte waren alle auf den Stammnamespace säumige (in diesem Fall ‚Berichte‘) und dann Namen wie ‚analysisKS3SubjectSummary.rpt‘ mit ‚analysisKS4SubjectSummary.rpt‘ usw.

diese aufzuräumen ich Namespaces gesetzt für die Berichtsklassen und für die Eigenschaft 'Benutzerdefinierter Werkzeugnamespace' des Berichts. Diese sind wie so strukturiert:

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

Die Namensräume haben gut funktioniert, aber wenn ein Bericht hat die gleichen Namen wie oben. Das Projekt wird nicht erstellt und besagt, dass zwei eingebettete Ressourcen nicht denselben Namen haben können.

Es zeigt dann "Reports.SubjectSummary" als die Fehlerbeschreibung, aber es gibt keine solche Ressource. Es sieht so aus, als würde es versuchen, sie während des Builds in den Root-Namespace zurückzuversetzen.

Irgendeine Idee, wie ich die eingebetteten Ressourcen zwingen kann, die richtigen Namespaces zu verwenden, die ihnen gegeben werden?

P.S. Anscheinend funktioniert das in C# ohne Änderung erforderlich. Aber ich brauche es, um mit VB zu arbeiten.

Antwort

1

Da Sie erwähnt haben, dass dies für C# funktioniert, vermute ich, dass der "Root-Namespace" des Projekts Auswirkungen auf Ihren "Custom Tool Namespace" hat.

Der benutzerdefinierte Tool-Namespace wird an den Root-Namespace des Projekts angehängt. Sie berücksichtigen dies möglicherweise nicht. Normalerweise wende ich mich dem "Objekt-Browser" zu, wenn ich Namespace-Probleme vermute oder Namespace Build-Fehler haben.

Öffnen Sie den "Objektbrowser" und überprüfen Sie die Namespaces Ihres Projekts. Hoffentlich ist das Namespace-Problem offensichtlich.

Wenn die Wurzel des Projektnamespace „Berichte“ und Ihre Anpassungs-Tool Namespace „Reports.Analysis.KS4.SubjectSummary“ wird die vollständige Namespace „Reports.Reports.Analysis.KS4.SubjectSummary“. C# -Projekte haben keinen Root-Namespace. Sie haben einen "Standard-Namespace", der nicht derselbe ist.

Um dies zu beheben, ändern Sie den benutzerdefinierten Tool-Namespace in "Analysis.KS4.SubjectSummary" oder löschen Sie den Root-Namespace des Projekts. Ich schlage vor, den benutzerdefinierten Werkzeug-Namespace zu ändern.

+0

Wirklich wirklich wünschte, MS würde nur den "Root" -Namespace in VB ausgeben und nur den gleichen Standard-Namespace wie C# – AussieALF

+0

@AussieALF, stimme ich nicht zu. Ein Root-Namespace ist so viel einfacher als der Standard-Namespace von C#. Jedes größere C# -Projekt, an dem ich gearbeitet habe, hat Namespace-Probleme. – AMissico

0

Vereinbart mit AMissico, lösche ich immer den Root-Namespace von den VB.NET-Projekteigenschaften und handle es explizit im Code.