Jak dodać zależności pakietów tylko dla źródła NuGet
Mam framework, który stworzyłem do użytku z wtyczkami Microsoft CRM / XRM / CDS / PowerPlatform / DataVerse. Te wtyczki nie mogą zawierać żadnych zależności od zewnętrznych bibliotek DLL innych niż .Net Framwork innych niż Microsoft SDK. Zamiast zależności ILMerging korzystałem z pakietów NuGet's Source Only Packages, które umożliwiają udostępnianie samych plików źródłowych za pośrednictwem NuGet, eliminując potrzebę odwoływania się i ILMerging innych bibliotek dll.
Próbuję, aby te pakiety NuGet były zgodne z dotnetcore. Istnieją dwa pakiety NuGet DLaB.Xrm.Source i DLaB.Common.Source. DLaB.Xrm.Source zależy od DLaB.Common.Source. Udało mi się pomyślnie zaktualizować pakiet Nuget dla pakietu wspólnego dla dotnetcore i wszystko wygląda świetnie. Następnie zaktualizowałem pakiet Xrm pod kątem dotnetcore, ale kiedy testowałem instalację tylko pakietu DLaB.Xrm.Source, wydaje się, że nie dodano pakietu DLaB.Common.Source, ponieważ teraz otrzymuję błędy kompilacji dla tych brakujących pliki, mimo że jest wymieniony jako zależność:

Czy coś mi brakuje? Czy istnieje metodologia, aby to zadziałało, czy też powinienem umieścić pliki DLaB.Common.Source bezpośrednio w plikach DLaB.Xrm.Source?
Oto jak mam zależności wymienione w moim pliku NuSpec:
<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>
Odpowiedzi
Wygląda na to, że jest to zgodne z projektem NuGet. Według tego:
https://docs.microsoft.com/en-us/nuget/reference/nuspec#dependencies-element
Pliki zawartości są wykluczone, więc najprawdopodobniej będę musiał dołączyć pliki źródłowe zależności w rodzicu.
do wykluczenia:
Lista rozdzielonych przecinkami tagów włączania / wyłączania (patrz poniżej) wskazująca zależność do wykluczenia w ostatecznym pakiecie. Wartość domyślna to build, analizatory, które można nadpisać. Ale content / ContentFiles są również niejawnie wykluczane z ostatecznego pakietu, którego nie można nadpisać . Tagi określone za pomocą exclude mają pierwszeństwo przed tymi określonymi za pomocą include. Na przykład include = "runtime, compile" exclude = "compile" jest tym samym, co include = "runtime".