2010-12-13 4 views
0

Es gibt eine UserControlA, die bereits entwickelt wurde, als ich an einem Projekt beigetreten bin. Es ist in einem Projekt, das ich MyProjectWeb nennen werde und sein Namensraum ist MyProjectWeb.Common.Benutzer Control kann nicht durch eine andere CS-Datei zugegriffen werden

Es gibt ein anderes WorkFlowManager-Projekt, das eine Klassendatei enthält, die auf dieses UserControl1 zugreift.

MyProjectWeb.Common.UserControlA myUserControlA = (MyProjectWeb.Common.UserControlA)WizardControl.FindControl("TabContainer5$tpSomething$UserControlID"); 

Hinweis: Workflowmanager und MyProjectWeb sind in der gleichen Lösung.

Das funktioniert völlig in Ordnung. Und jetzt möchte ich ein anderes Benutzersteuerelement erstellen, das UserControlB ist.

Ich folgte genau das gleiche.

namespace MyProjectWeb.Common 
{ 
    public partial class UserControlB : System.Web.UI.UserControl 
    { 

Aber zu meiner Überraschung, ich kann eine Instanz von UserControlB in der gleichen Code-Datei in Workflowmanager nicht erstellen. MyProjectWeb.Common-Namespace enthält nicht einmal ein UserControlB. Wenn ich kompilieren ich bekommen natürlich ein
The type or namespace name 'UserControlB' does not exist in the namespace 'MyProjectWeb.Common' (are you missing an assembly reference?)

Warum ist, dass ich UserControlA aber nicht UserControlB verweisen kann, die von der Workflowmanager cs-Datei im gleichen Namensraum sind? Wenn ich irgendwo innerhalb des MyProjectWeb auf den MyProjectWeb.Common-Namespace zugreife, kann ich beide Benutzersteuerelemente sehen. Überall nach Fehlern suchen?

ich Visual Studio 2005 mit ASP .NET 2.0

Antwort

1

Es würde davon abhängen, wie Workflowmanager Projekt verweist MyProjectWeb dll. Wenn beide Projekte in derselben Lösung sind, sollte es eine Projektreferenz sein, aber Sie müssen es überprüfen. Wenn der Verweis auf DLL-Datei gemacht wird, dann müssen Sie sehen, wo genau die referenzierte Datei gespeichert ist - meine Schätzung ist, dass WorkFlowManager Projekt verweist auf eine private Kopie von MyProjectWeb DLL, die offensichtlich nicht aktualisiert wird, wenn Sie MyProjectWeb neu erstellen.

+0

WorkFlowManager referenziert eine alte DLL-Datei, wie Sie gesagt haben. :) Aber mein Problem ist, dass Web-Projekte keine DLL-Dateien erstellen, oder? Wenn ja, wo finde ich die neueste aktualisierte DLL-Datei? –

+0

@Ranhiru, Web-Anwendungsprojekt erstellt DLL-Dateien - sie werden in bin-Verzeichnis in Ihrem Web-Projekt Stammverzeichnis gefunden. – VinayC

+0

Vielen Dank Partner :) '' WorkFlowManager.csproj' Datei hatte einen Verweis auf eine falsche DLL-Datei. Das Entfernen der Referenz von VS 2005 und das erneute Hinzufügen der richtigen DLL wurde einfach immer auf dieselbe DLL bezogen! Musste die csproj-Datei manuell bearbeiten. Vielen Dank! –

1

verwende ich habe bei dem Projekt suchen, sicher zu wissen, was Sie sagen, oben nicht sagen Sie mir genug.

Schnell Ideen:

  • Stellen Sie sicher, dass UserControlB.cs tatsächlich im richtigen Projekt.
  • Stellen Sie sicher, dass UserControlB.cs für den Buildtyp als "Compile" markiert ist.
  • Stellen Sie sicher, dass UserControlB tatsächlich "B" nicht "A" ist, weil ein Schreibfehler sie zusammen zu kombinieren, da sie teilweise sind.
  • Diese Benutzersteuerelemente sind "teilweise" haben Sie auch den anderen Teil kopiert?
  • Stellen Sie sicher, dass das Webprojekt keine Fehler aufweist. Es ist möglich, dass das Projekt nicht ordnungsgemäß erstellt wird und der Fehler aufgrund einer veralteten Assembly auftritt.
  • Reinigen + Rebuild. Löschen Sie bin und obj Verzeichnisse manuell.
Verwandte Themen