Laden...

Debug-Projektreferenz und Release-Nuget-Package

Erstellt von Fabiano vor einem Jahr Letzter Beitrag vor einem Jahr 593 Views
F
Fabiano Themenstarter:in
27 Beiträge seit 2021
vor einem Jahr
Debug-Projektreferenz und Release-Nuget-Package

Hallo zusammen!

Ich habe eine Applikation, die gegen mehrere selbstentwickelte Libraries linkt und möchte die daher bei Debug-Builds via Projektreferenz im VS einbinden, bei Release-Builds hingegen als Nuget-Paket. Gibt es da irgendeine Möglichkeit, die ich bisher übersehen habe? Leider finde ich bei Google nichts, kann aber sein, dass ich die falschen Keywords verwende.

Vielen Dank für eure Antworten!

16.832 Beiträge seit 2008
vor einem Jahr

Hallo. Nein, dafür gibt es keinen direkten Automatismus.
Um beim Debug mehr Informationen zu bekommen, gibt es Symbolpakete.
How to publish NuGet symbol packages using the new symbol package format '.snupkg'

Dort sind zwei Strategien beschrieben; ich verwende zB. meistens die Embedded Variante.

2.079 Beiträge seit 2012
vor einem Jahr

Würde es nicht funktionieren, in der csproj die ProjectReference bzw. PackageReference abhängig von der Konfiguration zu verwenden?
Gehen würde es sicher, ob Visual Studio damit umgehen kann, ist eine andere Frage und ob das sinnvoll ist, ist nochmal eine andere Frage 😁

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.

6.911 Beiträge seit 2009
vor einem Jahr

Hallo Fabiano,

wie Palladin007 angemerkt hat geht das via MsBuild-Conditions, z.B.


<ItemGroup>
    <ProjectReference Condition="'$(Configuration)' == 'Debug'" ...

    <!-- od. Release statt Debug -->
    <PackageReference Condition='$(Configuration)' != 'Debug'" ...
</ItemGroup>

VS kann damit umgehen. Aber i.d.R. gibt es dafür keinen Grund, denn wie Abt erwähnte gibt es dazu Symbolpakete bzw. in die Assembly eingebette Symbole, so dass das Debug-Verhalten besser funktioniert.

Daher sollte bei Fragen idealerweise auch das eigentliche Ziel mit angegeben werden, damit potentielle Helfer wissen worum es geht.
Es kann ja sein, dass sich der Fragende in eine Sackgasse begiebt, das aber aufgrund der sehr konkreten Frage nicht sofort ersichtlich ist -- sich aber erahnen lässt.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

2.079 Beiträge seit 2012
vor einem Jahr

Ich rate mal in den Raum rein:

Hier geht es um zwei oder mehr "Haupt-Projekte" und ein gemeinsam genutztes weiteres Projekt, das mit NuGet verteilt werden soll.
Mit ProjectReferences kann man einfach "rein" debuggen und bearbeiten, das geht mit PackageReferences nicht.
Hier geht es also darum, den Umweg über einen neuen NuGet-Build oder eine geeignete Test-Grundlage zu überspringen.

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.

16.832 Beiträge seit 2008
vor einem Jahr

Mit ProjectReferences kann man einfach "rein" debuggen und bearbeiten, das geht mit PackageReferences nicht.

Solange die Symbols dabei sind, kannst Du alles debuggen, egal ob Projekt oder Paket.