2017-02-06 4 views
1

Ich verweise einen WCF-Dienst von meinem Client, und die Datenverträge befinden sich in einer Assembly innerhalb der gleichen Lösung. Wenn ich den Serviceverweis hinzufüge, wird die Projektassemblierung korrekt erneut verwendet, aber es wird auch ein zusätzlicher Verweis auf dieselbe Assembly hinzugefügt, mit der Ausnahme, dass der Pfad dieses Benutzers auf den Bin \ Debug-Ausgabeordner des Clientprojekts zeigt.WCF Service Referenz Wiederverwendung Assembly Referenz Problem

Das Problem ist, dass es den Build für andere Entwickler bricht, wenn der Code auf Git geschoben wird, wenn diese ungültige Referenz entfernt wird.

Ich habe bereits die Projektreferenz hinzugefügt und Svcutil angewiesen, diese Referenz wieder zu verwenden, warum fügt sie danach ihre eigene hinzu? Dies passiert jedes Mal, wenn ich die Referenz aktualisiere.

Ist etwas nicht in Ordnung oder funktioniert es so? Ich habe sowohl "Reuse Typen in allen referenzierten Assemblys" und "Reuse Typen in angegebenen Referenz-Assemblys" ausprobiert.

+0

Eigentlich beide. Ja, es stimmt etwas nicht, und ja, so funktioniert es. –

Antwort

0

Nachdem ich stundenlang versucht habe herauszufinden, was vor sich geht, habe ich endlich alles richtig gemacht.

Ich glaube, der Grund dafür war, dass die Baugruppe, auf die ich referenzierte und die ich wiederverwenden wollte, die falsche Eigenschaft "Assemblyname" hatte.

Ich dachte nicht, dass dies tatsächlich zu Problemen führen würde, aber ich bemerkte, dass beim Hinzufügen der Projektreferenz es als "XYZ" angezeigt würde, aber wenn es aus der Liste der Assemblys ausgewählt wurde, im Dienst wiederzuverwenden Referenzdialog würde es als "My.Namespace.XYZ" angezeigt werden, also hatte es einen anderen Namen.

Ich öffnete den Eigenschaften-Dialog der Assembly, und der Wert von "Assemblyname" war "My.Namespace.XYZ" und nicht nur "XYZ", also änderte ich das und ließ den "Default Namespace" als es war (My.Namespace.XYZ).

Dann löschte ich die Lösung, entfernte alle zusätzlichen Dateien und Ordner aus dem Client-Projekt (bin, obj, Service-Referenzen, Datenquellen, etc ..) und fügte die Service-Referenz hinzu, und dieses Mal keine zusätzlichen Referenzen hinzugefügt und alles ging an die richtigen Stellen.

Verwandte Themen