Entwickler-Ecke
Programmierwerkzeuge - Visual Studio 2005 Compilefehler nur an meinem Rechner -Help
study - Do 18.02.10 16:29
Titel: Visual Studio 2005 Compilefehler nur an meinem Rechner -Help
Hallo zusammen,
ich bin relativ neu in der Programmiersprache C# und in der Nutzung von Visual Studio. Ich habe momentan ein Problem, an dem ich schon lang kämpfe und komme einfach nicht weiter. Ich habe es auch schon in einem anderen Forum versucht. Allerdings komme ich dort mit meinen nicht vorhandenen Kentnissen nicht weiter.
Folgende Situation:
Ich soll einen Windows-Applikation, die in C# geschrieben ist, erweitern. Der Aufbau ist prinzipiell so, dass in der Solution viele kleine Projekte enthalten sind. Die Produkte (also in dem Fall die DLLs) sollen alle in das Verzeichnis _Products gelegt werden. In den einzelnen Projekten gibt es viele Verlnkungen auf die DLLs in dem _Products-Verzeichnis. Soll heißen, man muss das Programm beim Ersten Buildvorgang zweimal bauen. Beim ersten Mal werden die DLLs erstellt und in das _Products Verzeichnis gelegt. Beim zweiten Buildvorgang sind dann die ganzen Verlinkungen vorhanden und der Build läuft durch.
Soweit die Theorie:
Bei meinem Kollegen funktioniert das alles auch genauso. Bei allerdings findet er die meisten Verlinkungen nicht und bricht den Buildvorgang mit vielen Fehlern ab. Die meisten Fehler sind " error CS0246: The type or namespace name 'xxx' could not be found (are you missing a using directive or an assembly reference?)".
Mein Kollege und ich holen den Code beiden aus dem gleichen Versionsmanagment -Tool. Somit ist also sichergestellt, dass die Sourcen wirklich identisch sind.
Meiner Meinung, muss dass an irgendwelchen Einstellungen im Visual Studio oder im .Net liegen, oder?
Was meint Ihr dazu?
Wäre über hilfe wirklich sehr dankbar. Bin schon echt am Verzweifeln.
Hoffe, dass Ihr in Euren Antworten Rücksicht darauf nehmt, dass Ihr es noch nicht mit einem C#-Profi zu tun habt (eher das Gegenteil).
Danke im Voraus
stud
Nersgatt - Do 18.02.10 16:44
Habt ihr die Buildreihenfolge richtig eingestellt? Dann ist es eigentlich nicht nötig, 2x zu bauen.
Bei VS 2008 Rechtklick auf die Projektmappe -> Projektbuildreihenfolge
study - Do 18.02.10 16:48
Ja, die Buildreihenfolge ist bei mir und meinem Kollegen identisch.
Gruß study
Nersgatt - Do 18.02.10 16:52
Dann mal schauen in Projekt -> xx-Eigenschaften -> Verweise -> Verweispfade
study - Do 18.02.10 16:54
Ein Punkt habe ich noch vergessen:
Wenn ich den Code, den mein Kollege gebaut hat, auf meinen Rechner kopiere, funktioniert alles sauber und der Buildvorgang läuft sauber durch.
Auch wenn ich den _Products Ordner lösche und erneut baue, funktioniert es ohne Probleme.
Wenn ich allerdings einen Rebuild mache, kommen wieder alles identischen Fehler, wie wenn ich den Code selbst aus dem Versionmanagement gesynct hätte.
Ich verstehs es einfach nicht.
study - Do 18.02.10 16:56
Bei den Verweispfaden ist alles leer und nichts eingetragen.
muss ich dort dann den Verweis auf den _Product Ordner eintragen?
Allerdings verstehe ich dann nicht, warum es bei meinem Kollegen funktioniert, bei dem auch alles leer ist.
Kha - Do 18.02.10 17:23
study hat folgendes geschrieben : |
| Die Produkte (also in dem Fall die DLLs) sollen alle in das Verzeichnis _Products gelegt werden. In den einzelnen Projekten gibt es viele Verlnkungen auf die DLLs in dem _Products-Verzeichnis. |
Weshalb so kompliziert :eyecrazy: ? Projektreferenzen wurden erfunden, um genau solche Probleme zu umgehen.
Ansonsten musst du eben Schritt für Schritt debuggen:
In welcher Assembly ist die Klasse, die er nicht findet?
Ist die Assembly im _Products-Ordner?
Wird sie wirklich referenziert ("Output"-Fenster -> "Build")?
study - Do 18.02.10 17:31
Ja ich weiss, dass das kompliziert ist. Allerdings ist das die Vorgabe, die ich nicht ändern kann.
Ich habe jetzt mal angefangen, das erste Projekt zu bauen.
Hier bekomme ich gleich einen Fehler: "error CS1577: Assembly generation failed -- Referenced assembly 'XXXLib' does not have a strong name".
Sorry, damit kann ich nichts anfangen.
c#surfer - Do 18.02.10 17:40
"error CS1577: Assembly generation failed -- Referenced assembly 'XXXLib' does not have a strong name" bedeutet, dass eine signierte assembly erwartet wird - die Doku ist dein Freund..
Kha - Do 18.02.10 17:45
study hat folgendes geschrieben : |
Hier bekomme ich gleich einen Fehler: "error CS1577: Assembly generation failed -- Referenced assembly 'XXXLib' does not have a strong name".
Sorry, damit kann ich nichts anfangen. |
Ist denn die zu kompilierende Assembly signiert (Projekteigenschaften -> Signierung)? Entweder müssen alle Assemblies signiert sein oder keine.
study - Do 18.02.10 17:48
Ja, es ist signiert, wie alle anderen auch.
study - Di 23.02.10 10:23
Hallo,
ich melde mich nochmals. Ich bin etwas weitergekommen, habe nun deutlich weniger Fehlermeldungen. Meine Schritte wollte ich hier zur Diskussion stellen und vielleicht könnt ihr mir noch weiterhelfen. Also folgendes habe ich gemacht:
Ich habe die verwendeten Assemblys in den Global Assembly Cache (GAC) geschrieben. Hierfür habe ich ein neues Install-Projekt erstellt, das gebaute exe-File von meinem Kollegen eingebunden und alle angezogenen DLLs in den GAC verschoben.
Anschließend kompiliert und installiert.
Ergebnis ist, dass ich nun deutlich weniger Fehlermeldungen habe.
Trotzdem gibt es nachwievor Fehlermeldungen, dass er einige DLLs nicht finden kann.
Ich habe also in meine Install-Projekt die entsprechenden DLLs noch hinzugefügt.
Nun bekomme ich folgende Fehlermeldung:
"Assembly xxx.dll must have a shared name to be installed globally".
Sorry, könnt Ihr mir hier vielleicht auch noch weiterhelfen?
Danke im Voraus für Eure Antworten.
Gruß study
study - Di 23.02.10 12:43
Genau das habe ich ja bereits gemacht.
Nur fehlen immer noch DLLs. Wenn ich nun diese ebenfalls in den GAC einbinden möchte, bekomme ich die Fehlermeldung "Assembly AssemblyName must have a shared name to be installed globally".
Und hier weiss ich jetzt nicht weiter.
Gruß study
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!