So fügen Sie nur NuGet-Quellpaketabhängigkeiten hinzu

Nov 28 2020

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

Daryl Nov 30 2020 at 20:07

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".