2016-11-08 7 views
1

Aufgrund einer Architektur Anforderung, würde ich alle Abhängigkeiten von Drittanbietern in einem einzigen Projekt zentralisiert haben. In den verbleibenden Projekten in der Projektmappe wird dann auf dieses Projekt als Abhängigkeit verwiesen, um alle diese Abhängigkeiten zu erben, damit sie nicht in der Projektmappe dupliziert werden.Vererben Abhängigkeiten zwischen Projekten

Ich frage mich, ob das möglich ist, auch wenn ich einige knifflige Anpassungen vornehmen muss, damit es funktioniert. Jeder Vorschlag wird sehr geschätzt.

Vielen Dank im Voraus!

Antwort

1

Wenn Sie auf ein Projekt verweisen, verweisen Sie nicht unbedingt auf seine Abhängigkeiten.

Also sagen, ich habe Projekt A, das 3rdPartyLib.dll verweist. Wenn ich ProjectA.dll referenziere, referenziere ich 3rdPartyLib.dll nicht.

Eine Möglichkeit wäre, die gesamte Logik zu schreiben, die 3rdPartylib.dll in Projekt A verwendet, und es im Wesentlichen als Abstraktionsschicht zu verwenden. Dann referenziere projectA.dll und rufe diese Logik auf, und die aufrufende Assembly hätte keine Kenntnis von 3rdPartyLib.dll

+0

Vielen Dank für Ihre schnelle Antwort @MavisBeacon! Ich habe versucht, eine Sache zu implementieren (die eigentlich nicht mit der Frage zu tun hat, die ich gestellt habe), indem ich das Schema verwende, das Sie vorgeschlagen haben, aber es hat nicht so funktioniert, wie ich es erwartet hatte. Was ich getan habe, ist eine Art Wrapper zu erstellen, der einige Funktionen der 3rdPartyLib.dll implementiert. Wenn ich diesen Wrapper in einem anderen Projekt aufruft, erhalte ich einen Bereitstellungsfehler, der nach der DLL fragt, auf die im aktuellen Projekt verwiesen wird. –

+0

Auf der anderen Seite, anstatt die Logik einer 3rdPartyLib zu implementieren, möchte ich eine Art von Abhängigkeiten Repository in einem einzigen Projekt gewickelt haben. Dies ist ein Ansatz, der in anderen Technologien wie Android oder iOS möglich ist, und ich frage mich, ob dies in Bezug auf Microsoft-Technologien möglich ist. –

Verwandte Themen