2010-10-21 2 views
6

Ich habe eine C# -Konsolenanwendung mit drei Baugruppen: Main, Common und Utilities.Bezieht sich auf Code in IBM.Data.DB2 macht diese Assembly für den Rest meiner Lösung nicht verfügbar

In einer Datei im Main Montage, Main.cs, ich habe die Zeile:

using Utilities; 

In einem Verzeichnis innerhalb des Common Montage, habe ich die DLL IBM.Data.DB2.dll.

In der Utilities Baugruppe habe ich ein Quellmodul, das auf die dll zugreift. Dienstprogramme haben einen Verweis auf IBM.Data.DB2. in einer Quelldatei innerhalb dieser Baugruppe, Util.cs, habe ich die Zeile:

using IBM.Data.DB2; 

Wenn innerhalb einer Methode in dieser Datei, mache ich jede Bezugnahme auf Code innerhalb des DB2 Baugruppe, wie in:

DbConnection c = new DB2Connection(_connectString); 

Ich bekomme einen Fehler beim Kompilieren der Main Assembly, die besagt, dass der Namespacename Utilities nicht gefunden werden kann. Utilities kompiliert gut mit oder ohne die Linie. Wenn ich die obige Zeile auskommentiere, wird alles gut.

Antwort

7

Ein hilfreicher Kollege kam vorbei und löste das für mich in ungefähr fünf Sekunden.

Es stellt sich heraus, dass beim Erstellen einer neuen Konsolenanwendung in VS 2010 standardmäßig ein Zielframework von ".NET Framework 4 Client Profile" abgerufen wird. Durch die Umstellung auf ".NET Framework 4" wurde das Problem behoben.

0

Sie haben sich mit einem ähnlichen Problem in VS 2013 beschäftigt. Ich habe die Buildversion des Clientprofils überprüft, alles sah gut aus und ich erkannte, dass ich mit der rechten Maustaste auf die Registerkarte Referenzen klicken musste, um die Projekte hinzuzufügen Lösung Referenzen. Ich habe das gemacht, und alles hat geklickt!

Verwandte Themen