Ich habe eine Klassenbibliothek (namens ProjectA), die 4,5 Ziele. Es verwendet nicht unbedingt 4.5 spezifische Funktionen. Ich brauche es, um 4.0 und 4.5 Assemblies zu bauen. Ich brauche es, um ein einzelnes NuGet-Paket zu erzeugen, das beide Assembly-Versionen (4.0 + 4.5) hat. Es wird von einer anderen Klassenbibliothek (ProjectB) konsumiert, die ebenfalls auf 4.5 abzielt.Seamless NuGet Version Integration zwischen .NET 4 und 45 Projekte
Ich brauche auch ProjectB, um das gleiche zu tun (Build-Output-Baugruppen für 4.0 und 4.5) und erstellen Sie ein einzelnes NuGet-Paket, das beide unterstützt.
Ich habe hinzugefügt, um zusätzliche Build-Konfigurationen für 4,0 bis beide ProjectA und ProjectB Projekte:
In ProjectB, ich habe auch die zusätzliche Abhängigkeit und Dateien in die .nuspec Datei hinzugefügt, die verwendet wird zu definieren, auf dem dependecy NuGet von ProjectA:
ProjectA gerade fein baut und erzeugt ein NuGet .nupkg die beide Binärdateien hat (eine für 4.0 und auf e für 4.5). Wenn ProjectB ProjectA verbraucht, bringt es die 4.5-Assembly von ProjectA ein. Wenn ProjectB die Version 4.5 seiner eigenen Assembly kompiliert, ist alles in Ordnung.
Hier wird es knifflig. Wenn ich ProjectB umgebe, um seine 4.0-Build-Konfiguration zu verwenden, wird Visual Studio mir sagen, dass meine Referenz auf ProjectA 4.5 ist, und kann nicht mit Build-Konfiguration 4.0 von ProjectB erstellt werden.
Ich möchte, dass Visual Studio automatisch die 4.0-Assembly von ProjectA verwendet, wenn die Buildkonfiguration in ProjectB in 4.0 geändert wurde.
Ich kann nicht 4.5 zu 4.0 herunterstufen, um alles nahtloser zu machen. Schließlich wird ein ProjectC beide Bibliotheken 4.0-Assemblys konsumieren. Weil ProjectC 4.0 anvisiert und nicht geändert werden kann.
Wie bekomme ich ProjectB, um ProjectA zu konsumieren, so dass ProjectB die richtige Assembly (4.0/4.5) von ProjectA verwendet, abhängig davon, welche Build-Konfiguration ProjectB verwendet.
können Sie versuchen, zwei verschiedene Konfigurationen erstellen, eine für .net 4.0 und eine für .net 4.5 und dann bedingte Referenzen in csproj verwenden. Beispiel: http://stackoverflow.com/questions/6523008/visual-studio-2010-conditional-references – MistyK
@Zbigniew Vielen Dank. Dein Kommentar hat enorm geholfen. Ich musste herausfinden, dass ich auch zwei verschiedene REFERENZEN erstellen konnte, die sich auszubreiten schienen. Ich habe Ihren Kommentar aktualisiert.Wenn du dies als Antwort mit mehr Details eingibst (bitte nimm es, um meine zu stehlen), würde ich gerne deine Antwort markieren. –
kein Problem, ich werde Ihre Antwort als Antwort markieren, da es alle Details enthält. – MistyK