Nach dem Upgrade auf ServiceStack v3.9.70 über nuGet ab v3.9.43 habe ich festgestellt, dass ServiceStack.Interfaces.dll
nicht mehr in Projekte kopiert wird, die von der Klassenbibliothek abhängen, die ServiceStack verwendet. Dies verursacht den folgenden Fehler:
Alle anderen ServiceStack-DLLs werden kopiert, nur ServiceStack.Interfaces fehlt. Alle Verweise werden auf Copy Local = True
gesetzt, und dies Der Vorschlag von StackOverflow löst das Problem nicht.
Ich habe festgestellt, dass ServiceStack.Interfaces.dll
der einzige mit einer Version von 1.0.0.0 ist, alle anderen sind auf 3.9.70.0 gesetzt. Könnte das ein Grund sein?
Weiß jemand, wie man es repariert, ohne die Datei ServiceStack.Interfaces.dll in allen Projekten, die auf meine Klassenbibliothek verweisen, manuell zu referenzieren?
Problem existiert noch mit v3.9.71.0. Es hängt wirklich mit der Tatsache zusammen, dass die ServiceStack.Interfaces
-Assembly ihre Version auf 1.0.0.0 hat, anstatt sie zu sein.
Ich habe das Github-Repository für ServiceStack geklont und diese Zeile in der build\build.proj
-Datei geändert und build\build.bat
ausgeführt.
dafür (bemerkte den entfernten Ausschluss)
%Vor% Ergebnis : Jetzt funktioniert es korrekt, d. h. die Datei ServiceStack.Interfaces.dll
wird in Projekte kopiert, die auf ein Projekt verweisen, das auf ServiceStack
verweist.
Kann mir das jemand erklären? Warum sollten Sie die Schnittstellen von der Versionierung ausschließen?
Die Assembly-Versionen wurden ab Release v4 absichtlich von 3.9. * auf 1.0.0.0 geändert.
Wahrscheinlich lag es an v4 ServiceStack.Interfaces.dll geändert werden zu starkem Namen und Version 4.0 . Die 'bsd' 3.9. * Version wurde auf 1.0 zurückgesetzt, wahrscheinlich um die älteste mögliche Version zu sein.
Weitere Einzelheiten finden Sie in diese SO Antwort .
Tags und Links servicestack