Ich habe eine CommonUtils-Lib, die ich in eine DLL eingebaut habe, die ich aus mehreren meiner Projekte referenziere. CommonUtils hängt von log4net.dll ab, das als Dateiverweis festgelegt wurde, und copy-local = true, wenn CommonUtils.dll erstellt wurde. log4net.dll und CommonUtils.dll sind nicht in GAC.Abhängigkeiten von Referenzen, die nicht in das Ausgabeverzeichnis kopiert wurden
Alles funktioniert gut in MyWorkingProject, wo ich nur einen Dateiverweis auf CommonUtils.dll - log4net.dll zeigt im Ausgabeverzeichnis (wie es eine Abhängigkeit von CommonUtils.dll ist aber nicht von MyWorkingProject referenziert). Allerdings, wenn ich ein neues Projekt erstellen, um einige Unittests hinzuzufügen: MyWorkingProjectTest und Projektverweis MyWorkingProject und dann Dateireferenz CommonUtils.dll wieder hier (ich möchte einige der CommonUtils verwenden) dann beim Aufbau log4net.dll, die eine Abhängigkeit in beiden ist Projektreferenz und in der Dateiverweis wird auch nicht in das Ausgabeverzeichnis kopiert.
Kann jemand klären, was hier passiert? Weiß der Compiler nicht, welche der log4net.dll-Dateien er greifen sollte? Gibt es etwas, was ich hier falsch mache? Sollte ich das anders machen, damit die log4net.dll explizit kopiert wird? Macht es Sinn, dass ich log4net explizit referenzieren muss?
Wie würden Sie log4net als Projektverweis hinzufügen, da ich nur die verteilte Binärdll habe. Auch warum sollte ich einen Verweis hinzufügen, da es einfach eine Abhängigkeit von einer meiner Referenzen ist. Jemand hat angegeben, dass Sie nicht auf Bibliotheken verweisen sollten, die Sie nicht explizit in Ihrem Code verwenden. – Fadeproof
Ich habe nicht als "Projektreferenz" sondern als "Referenz" in Ihrem Projekt verstanden. – user7116