wake-up-neo.com

Visual Studio 2010 - Vermissen Sie eine using-Direktive oder eine Assemblyreferenz?

Wenn ich in Visual Studio-Projekt einen Verweis auf meine DLL hinzufüge, kann ich ihn verwenden, aber wenn ich meinen Code kompiliere oder versuche, ihn auszuführen, erhalte ich eine. Vermissen Sie eine using-Direktive oder einen Assemblyverweis?_ Error. Ich kann bestätigen, dass ich das Recht habe, eine Anweisung für meinen Namespace zu verwenden, und ich kann bestätigen, dass die DLL ordnungsgemäß geladen ist. Hat jemand eine Idee, was ich dabei nicht richtig machen kann? 

25
user272671

Gehen Sie zu den Projekteinstellungen und stellen Sie sicher, dass Sie nicht das Projekt für eine .net-Version kompilieren, die den Text "Client-Profil" enthält.

59

Ich hatte gerade ein Problem wie dieses, auch wenn dies eine alte Frage ist, dachte ich, ich würde mein 2c hinzufügen, was das Problem behoben hat, da keine der anderen Antworten geholfen hat:

Aus welchem ​​Grund auch immer, wenn ich die Lösung von oben nach unten baute, wurde eine bestimmte DLL nicht aktualisiert und eine Ausgabe mit geändertem Code ausgegeben. Während meine Lösung keine sichtbaren Fehler aufwies, referierte sie beim Erstellen jedoch weiterhin auf die alte DLL und begann sich zu beschweren.

Es war einfach nur der Fall, dass das beanstandete Projekt direkt neu erstellt wurde, und danach wurde die neueste DLL übernommen und glücklich gebaut.

Dies schien ein ungewöhnlicher Zufall zu sein, da sich zwischen den Zeitpunkten, zu denen es funktionierte, keine Konfiguration geändert hatte.

6
John

Manchmal bauen Sie die Lösung einfach neu auf.

4
Akshayraj Kore

Verwenden Sie .net 4.0? 

Wenn ja, ist diese DLL wahrscheinlich nicht mit .net 4.0 kompatibel

2
Rod

Der Speicherort von DLL ist wichtig.

Wenn Sie einer DLL, die sich außerhalb Ihrer Visual Studio-Lösung befindet, eine Referenz auf Ihrem lokalen Computer hinzufügen, wird diese nicht notwendigerweise in Ihre Lösungsdateien kopiert (abhängig vom Typ der Lösung/des Projekts).

Wenn dies Ihr Problem ist, müssen Sie entweder DLL im selben Pfad auf dem anderen Computer ablegen oder es in Ihre Lösung kopieren, damit es zusammen mit den Lösungsdateien bereitgestellt wird und die Referenz ändern.

Sie können dies auch mit Build-Anweisungen erledigen, aber das könnte im Moment Ihre Erwartungen übertreffen.

2
DOK

Höchstwahrscheinlich verweist Ihre DLL auf eine andere DLL, auf die das Clientprojekt nicht verweist, und Ihr DLL-Code macht einen Typ oder eine Schnittstelle aus der 3. DLL für den Clientcode verfügbar.

Wenn Sie die ExaCt-Nachricht posten, können wir besser helfen.

2
Franci Penov

In meinem Fall wurde das Hauptprojekt (WinForm) als Framework Target: FW 4.0 "Client Profile" konfiguriert. Ich wechsle zu FW 4.0 und arbeite perfekt !!. Beim ersten Mal habe ich in den referenzierten Projekten nachgesehen und sie waren in Ordnung, aber das Hauptprojekt nicht. Ich hoffe diese Hilfe. Vielen Dank.

1
diego

In meinem Fall ist dieser Kompilierungsfehler nach dem Hinzufügen des Verweises auf Microsoft BCL Build-Komponenten über das Kontextmenü "NuGet-Pakete verwalten" im Problemprojekt aufgetreten.

Vorher: Ich hatte Projekt Main (Konsolenanwendung), das auf Projekt A (Klassenbibliothek) verwies. _. _ Das Projekt A hatte eine Abhängigkeit von Microsoft BCL Build Components.

Nachher: ​​Ich begann mit dem Refactoring, wo ich mehrere Klassen für das separate Projekt New auswählte. Es hing auch von A ab. Der Kompilierungsfehler trat jedoch bei Projekt New auf, als gäbe es keinen Verweis New -> A (obwohl Visual Studio angeblich nicht gefundene Schnittstellen und Klassen im Fehler nicht hervorgehoben hat Liste der Zusammenstellung).

Also habe ich die Abhängigkeiten des Projekts A überprüft und dort Microsoft BCL Build Components ..__ gefunden. Nachdem ich es zu New 's Abhängigkeiten hinzugefügt hatte, funktionierte alles gut . Das Interessanteste ist das Main hat nicht enthielt diese Abhängigkeit und brauchte sie nicht.

Hoffe das hilft.

0
flam3