So fügen Sie nur NuGet-Quellpaketabhängigkeiten hinzu
Ich habe ein Framework erstellt, das mit den CRM / XRM / CDS / PowerPlatform / DataVerse-Plugins von Microsoft verwendet werden kann. Diese Plugins dürfen keine Abhängigkeiten von externen Nicht-Microsoft FrDwork-Nicht-MicrosoftSDK-DLLs enthalten. Anstatt ILMerging-Abhängigkeiten zu verwenden, habe ich NuGets Nur-Quelle-Pakete verwendet, mit denen die Quelldateien selbst über NuGet freigegeben werden können, sodass keine Referenzierung und ILMerging anderer DLLs erforderlich ist.
Ich versuche, diese NuGet-Pakete dotnetcore-kompatibel zu machen. Es gibt zwei Nuget-Pakete DLaB.Xrm.Source und DLaB.Common.Source. DLaB.Xrm.Source hängt von DLaB.Common.Source ab. Ich konnte das Nuget-Paket für das Common-Paket für dotnetcore erfolgreich aktualisieren, und alles sieht gut aus. Ich habe dann das Xrm-Paket für dotnetcore aktualisiert, aber als ich die Installation nur des DLaB.Xrm.Source-Pakets getestet habe, scheint es das DLaB.Common.Source-Paket nicht hinzugefügt zu haben, da jetzt Build-Fehler für die fehlenden angezeigt werden Dateien, obwohl es als Abhängigkeit aufgeführt ist:

Vermisse ich etwas Gibt es eine Methode, um dies zum Laufen zu bringen, oder sollte ich die DLaB.Common.Source-Dateien direkt in die DLaB.Xrm.Source-Dateien einfügen?
So habe ich die Abhängigkeiten in meiner NuSpec-Datei aufgelistet:
<dependencies>
<group targetFramework="net">
<dependency id="DLaB.Common.Source" version="1.2.0.10" />
</group>
<group targetFramework="netcoreapp">
<dependency id="DLaB.Common.Source" version="1.2.0.10" />
</group>
</dependencies>
Antworten
Sieht so aus, als wäre dies beabsichtigt für NuGet. Demzufolge:
https://docs.microsoft.com/en-us/nuget/reference/nuspec#dependencies-element
Inhaltsdateien sind ausgeschlossen, daher muss ich höchstwahrscheinlich die Quelldateien der Abhängigkeit in das übergeordnete Element aufnehmen.
zum Ausschluss:
Eine durch Kommas getrennte Liste von Einschluss- / Ausschluss-Tags (siehe unten), die die Abhängigkeit angeben, die im endgültigen Paket ausgeschlossen werden soll. Der Standardwert ist build, Analysatoren, die überschrieben werden können. Content / ContentFiles werden jedoch auch implizit im endgültigen Paket ausgeschlossen, das nicht überschrieben werden kann . Mit exclude angegebene Tags haben Vorrang vor den mit include angegebenen Tags. Beispiel: include = "runtime, compile" exclude = "compile" ist dasselbe wie include = "runtime".