Vra

Ek het 'n persoonlike taak wat ek wil uit te voer wanneer die bou van my C # projekte. Hierdie taak is geleë in MyTask.dll, wat 'n ander vergadering verwys, MyCommon.DLL.

Die probleem is dat MyCommon.dll is geleë op ".. \ Common \ MyCommon.dll" relatief tot MyTask.dll, wat dit buite die AppBase rig vir MSBuild proses plaas. Ek het bevestig dat dit inderdaad die probleem deur die ontleding van MSBuild se log en sien verslag Fusion se oor die bindende mislukking.

Wat kan ek doen om te maak Fusion vind MyCommon.dll tydens die bou proses? Let daarop dat die verskuiwing van die vergadering van my jeug, wat ook afhanklik is van dit sal breek.

UPDATE: Wel, dit lyk ek gaan met behulp van 'n afskrif Afterall. Ander oplossings al vereis die hele stelsel veranderinge, wat nie werklik hier is gewaarborg nie.

Was dit nuttig?

Oplossing

So kopieer dit in plaas? Net 'n gedagte. Het jy 'n afskrif daar net om die opbou dat jy verwyder sodra jy klaar is met dit te ondersteun.

Ander wenke

'n opsie is om te gebruik ILMerge om saam te smelt die afhanklikheid in die taak vergadering.

Al hierdie "oplossings" te skep meer afhanklikes wat die omgewing bemoeilik. Daar moet 'n makliker manier om die indringende pad tydens looptyd werk wees ..

spesifiek MSBuild mens toelaat om te ondersoek paaie in jou .proj lêer by te voeg, of om die afhanklike dlls spesifiseer

Jy kan 'n persoonlike UsingTask definieer:

<UsingTask TaskName="Task" AssemblyFile="Assembly.dll" />

maar jy kan nie afhanklikhede voeg? dit moet ingesluit ... hier met iets soos

<UsingTask TaskName="Task" AssemblyFile="Assembly.dll">
<DependantAssembly AssemblyFile="dependant.dll"/>
</UsingTask>

Maar, geen dit nie ondersteun nie ...

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top