2009-10-28 21 views
9

Ho scritto un'attività MSBuild che fa uso di assembly di terze parti.Attività MSBuild personalizzata con dipendenze

Quando utilizzo l'attività nel mio progetto, MSBuild lamenta che non è possibile caricare gli assembly di terze parti (non a caso).

Dove posizionare gli assembly di terze parti in modo che siano disponibili per MSBuild. Ho provato ad aggiungere riferimenti di progetto a loro senza successo.

risposta

9

Non sono sicuro di aver espresso il mio problema molto bene, ma ora ho trovato la soluzione.

Nel mio file .proj, ho Riferimento mio compito personalizzato con la seguente sintassi ...

<UsingTask AssemblyFile="..\lib\MyCompany.MSBuild\MyCompany.MSBuild.dll" TaskName="CreateDatabase" /> 

Il mio compito CreateDatabase si basa su varie assemblee 3rd-party. Tuttavia, alcuni di questi sono referenziati tramite reflection, quindi non sono stati inclusi di default nella cartella ".. \ lib \ MyCompany.MSBuild".

Avevo cercato di far funzionare l'attività posizionando gli assembly richiesti nella stessa directory del file .proj che richiamava l'attività.

Tuttavia, ciò che avrei dovuto fare era mettere gli assembly nella directory delle attività di riferimento ".. \ lib \ MyCompany.MSBuild \".

Semplice!

1

È possibile aggiungerli al GAC (Global Assemby Cache). Funziona solo se è fortemente denominato.

È inoltre possibile assicurarsi di averli contrassegnati con copia local = true quando si è aggiunto il riferimento nel progetto.

Problemi correlati