2010-11-17 7 views
5

J'ai du mal à organiser certains Crystal Reports dans une structure plus maniable dans un projet Winforms VB.Net.Comment utiliser correctement les espaces de noms dans vb.net avec des ressources intégrées?

Les rapports ont tous été en défaut à l'espace de noms racine (dans ce cas, les « rapports ») et ayant des noms comme « analysisKS3SubjectSummary.rpt », « analysisKS4SubjectSummary.rpt » etc.

Pour ranger ce Ï mis namespaces pour les classes de rapport et sur la propriété 'Custom Tool Namespace' du rapport. Ceux-ci sont structurés comme ceci:

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

Les espaces de noms a bien fonctionné, mais si un rapport a le même nom que ci-dessus. Le projet ne construira pas, indiquant que deux ressources incorporées ne peuvent pas avoir le même nom.

Ensuite, il affiche 'Reports.SubjectSummary' comme description d'erreur, mais il n'y a pas de telle ressource. Il semble qu'il essaye de les remettre à l'espace de noms racine pendant la construction.

Une idée de comment je peux forcer les ressources incorporées à utiliser les espaces de noms appropriés qui leur sont donnés?

P.S. Apparemment, cela fonctionne en C# sans modification nécessaire. Mais j'en ai besoin pour travailler avec VB.

Répondre

1

Puisque vous avez mentionné que cela fonctionne pour C#, alors je soupçonne que le "Root namespace" du projet affecte votre "Custom Tool Namespace".

L'espace de noms d'outil personnalisé est "ajouté" à l'espace de noms racine du projet. Vous ne pouvez pas en tenir compte. Je me tourne généralement vers le "Object Browser" quand je suspecte des problèmes d'espace de noms ou des erreurs de construction d'espace de noms.

Ouvrez le "Object Browser" et vérifiez les espaces de noms de votre projet. Heureusement, le problème de l'espace de noms est évident. Si l'espace de noms racine du projet est «Rapports» et que votre espace de noms d'outils personnalisé est «Reports.Analysis.KS4.SubjectSummary», l'espace de noms complet est «Reports.Reports.Analysis.KS4.SubjectSummary». Les projets C# n'ont pas d'espace de noms racine. Ils ont un "namespace par défaut" qui n'est pas le même. Pour résoudre ce problème, remplacez votre espace de noms d'outil personnalisé par "Analysis.KS4.SubjectSummary" ou effacez l'espace de noms racine du projet. Je suggère de changer l'espace de noms de l'outil personnalisé.

+0

Vraiment vraiment souhaiter MS viderait juste l'espace de noms "racine" dans VB et juste faire le même espace de noms par défaut comme C# – AussieALF

+0

@AussieALF, je ne suis pas d'accord. Avoir un espace de noms racine est tellement plus facile que l'espace de noms par défaut de C#. Chaque projet C# majeur sur lequel j'ai travaillé a des problèmes d'espace de nommage. – AMissico

0

D'accord avec AMissico, j'efface toujours l'espace du nom racine des propriétés du projet VB.NET et le gère explicitement dans le code.

Questions connexes