| Autor |
Nachricht |
study
Hält's aus hier
Beiträge: 10 Dabei seit: 18.02.2010
|
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
       
Beiträge: 487 Dabei seit: 11.11.2008
Delphi 2011 Enterprise
|
Habt ihr die Buildreihenfolge richtig eingestellt? Dann ist es eigentlich nicht nötig, 2x zu bauen.
Bei VS 2008 Rechtklick auf die Projektmappe -> Projektbuildreihenfolge
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|

|
|
study
Hält's aus hier
(Threadstarter)
Beiträge: 10 Dabei seit: 18.02.2010
|
Ja, die Buildreihenfolge ist bei mir und meinem Kollegen identisch.
Gruß study
|

|
|
Nersgatt
       
Beiträge: 487 Dabei seit: 11.11.2008
Delphi 2011 Enterprise
|
Dann mal schauen in Projekt -> xx-Eigenschaften -> Verweise -> Verweispfade
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|

|
|
study
Hält's aus hier
(Threadstarter)
Beiträge: 10 Dabei seit: 18.02.2010
|
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
Hält's aus hier
(Threadstarter)
Beiträge: 10 Dabei seit: 18.02.2010
|
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
        

Beiträge: 2865 Erhaltene Danke: 11 Dabei seit: 12.11.2005 Wohnort: Brackenheim
Win 7 F#, C# (VS2010)
|
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  ? 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
Hält's aus hier
(Threadstarter)
Beiträge: 10 Dabei seit: 18.02.2010
|
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
       
Beiträge: 32 Erhaltene Danke: 1 Dabei seit: 24.01.2010
|
"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
        

Beiträge: 2865 Erhaltene Danke: 11 Dabei seit: 12.11.2005 Wohnort: Brackenheim
Win 7 F#, C# (VS2010)
|
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
Hält's aus hier
(Threadstarter)
Beiträge: 10 Dabei seit: 18.02.2010
|
Ja, es ist signiert, wie alle anderen auch.
|

|
|
Kha
        

Beiträge: 2865 Erhaltene Danke: 11 Dabei seit: 12.11.2005 Wohnort: Brackenheim
Win 7 F#, C# (VS2010)
|
study hat folgendes geschrieben : | | wie alle anderen auch. |
Äh, dann würde wohl kaum der Fehler kommen. Schau mal im Reflector oder mit sn.exe -T nach, ob XXXLib wirklich einen starken Namen hat.
_________________ >λ=
|

|
|
study
Hält's aus hier
(Threadstarter)
Beiträge: 10 Dabei seit: 18.02.2010
|
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
|

|
|
Robert.Wachtel
        
Beiträge: 881 Erhaltene Danke: 1 Dabei seit: 07.12.2004 Wohnort: Köln
Windows 7 Ultimate x64 D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
|
|

|
|
study
Hält's aus hier
(Threadstarter)
Beiträge: 10 Dabei seit: 18.02.2010
|
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
|

|
|
Werbung ausblenden? Dann registriere Dich kostenlos.
Weitere Gründe für eine Registrierung.
Werbung ausblenden? Dann registriere Dich kostenlos.
Weitere Gründe für eine Registrierung.
|
|
|
|