baseclass / Contrib.Nuget

Extending nuget with nuget packages
MIT License
30 stars 21 forks source link

Possibility to change ouput directory #9

Closed christianhuening closed 8 years ago

christianhuening commented 10 years ago

Hi there and thanks for this awesome Nuget Extension! It did solve exactly my problem. That is almost ;-) I have a plugin architecture, where in one case a plugin requires native libraries. So I used your extension to copy the native libraries alongside the plugin's output directory. As it turns out the plugin uses a 3rd party library which searches for its native libraries only in the top level execution directory. Due to my directory structure the plugin and hence the native libraries reside in subfolders from that top level directory.

So what would be really great to have is the possiblity to configure the output directory in a relative way to the building directory of the project.

Is that possible?

Cheers, Christian

romerod commented 9 years ago

You can specify it relative to the output folder, just not higher in the hierarchy, are you trying this?

christianhuening commented 9 years ago

Yepp I am trying that. I have a nested output folder, from a separate project, which needs to got to /layers/addins. However I need the one folder from that project to be copied to .

mnivet commented 9 years ago

Instead of trying to copy the native assembly in a parent folder of its output location, an other solution may be to extend the AssemblyResolver to search in subfolders of your plugins ?

Personally I use something like that in relation with this package to output native assemblies in amd64 and x86 subfolders of the standard output folder and resolve at runtime the load of the assembly by looking in the folder corresponding to the execution environment.

May be a similar solution can be applied to your problem by extending the assembly resolver to search in your plugins subfolders

look at the documentation here: https://msdn.microsoft.com/fr-fr/library/system.appdomain.assemblyresolve(v=vs.110).aspx