I have created a c# project in it I reference system.windows.interactivity.dll.
What I'm wondering is how to set the project up so that when I build the *.exe I get this sort of structure:
Program Folder
program.exe
Libraries Folder
system.windows.interactivity.dll
I have tried a little bit of experimentation by placing a "Libraries" folder under the solution folder, so that it is at the same level as the project folder. This gives a relative path in the csproj file of "..\Libraries\system.windows.interactivity.dll", however this cannot be the solution as when I compile it copies the dll into the debug folder with the exe and it keeps this 'same level' path structure.
How can I alter things so that it places and references the dll in another directory?
[Update]
So I have modified the following in my project:
1: Changed the 'Copy Local' property on reference system.windows.interactivity.dll to False.
2: Added the following code to the csproj file to check if the Libraries folder exists above the Output directory, if not create and then copy over the dll.
<Target Name="BeforeBuild">
<MakeDir Directories="$(OutDir)..\Libraries"
Condition="!Exists('$(OutDir)..\Libraries')" />
<Copy SourceFiles="..\Libraries\System.Windows.Interactivity.dll"
DestinationFolder="$(OutDir)..\Libraries"
ContinueOnError="True" />
</Target>
3. Add the following code to App.config to add another location for the app to search for the dll.
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="..\Libraries"/>
</assemblyBinding>
</runtime>
</configuration>
My Findings:
Upon building the app, all files are exactly where I want them, as in the structure in my original post. When I try to run the exe from the output directory it cannot find the dll.
[/Update]