2016-04-15 16 views
5

Vorrei eseguire l'iterazione su un pacchetto nuget senza spingere continuamente il pacchetto su un feed nuget.Sostituire un riferimento a un pacchetto nuget con un riferimento al progetto locale

Mi chiedo se sia possibile aggiungere un riferimento al progetto in modo condizionale anziché un riferimento al pacchetto nuget tramite un file di destinazione o oggetti di scena in file csproj che consentano di eseguire il debug in locale sul pacchetto nuget.

Nel mio csproj avrei:

<Reference Include="A"> 
    if(Exists(localOverrides.props) { 
     <HintPath>localOverrides.A.HintPath</HintPath> 
    } else { 
     <HintPath>..\packages\A.dll</HintPath> 
    } 
</Reference> 

e localOverrides.props sarebbe un file elencato nel mio .gitignore che gli sviluppatori potrebbero aggiungere linee a piacere:

A -> C:\Repos\A\bin\A.dll 

Sono sulla la strada sbagliata? Sicuramente ci deve essere un modo più sostenibile per eseguire rapidamente iterazioni e debug di un pacchetto di nuget, quindi creare pacchetti pre-release su ogni cambiamento

risposta

2

Il modo in cui ho sempre eseguito il debug del pacchetto Nuget è una volta che il pacchetto è stato aggiunto alla soluzione tramite Nuget. , quindi si apportano le modifiche alle DLL Nuget e si copiano semplicemente nella cartella corretta nella cartella dei pacchetti per il progetto che utilizza il pacchetto Nuget.

Tutto ciò che dovete fare è compilare la soluzione che il progetto Nuget risolve in modalità di debug e basta copiarli/incollarli nella cartella dei pacchetti del progetto consumante. Potresti renderlo ancora più semplice scrivendo uno script batch e aggiungendolo come evento post build al progetto Nuget che ha appena copiato le DLL nella cartella corretta per te.

0

Se tutto ciò che si desidera eseguire è eseguire il debug del pacchetto NuGet, suggerisco di utilizzare l'opzione "server di debug di dotpeek". In questo modo non è necessario fare nulla con il riferimento e semplicemente eseguire il debug del pacchetto o quello che vuoi. https://confluence.jetbrains.com/plugins/servlet/mobile#content/view/53336814

+1

Grazie per il tuo suggerimento, sfortunatamente questo non mi permette di cambiare il codice ed eseguirlo di nuovo. – Valchris

0

Sembra che si desideri un progetto di test (unità o integrazione) nella stessa soluzione del progetto di assemblaggio in pacchetto NuGet. Quindi puoi dimostrare la sua correttezza indipendentemente da qualsiasi consumatore del pacchetto NuGet. Buoni test aiuteranno anche a non rompere nulla involontariamente durante l'aggiornamento del pacchetto in futuro.

Problemi correlati