tags:

views:

692

answers:

1

Since AppDomain.AppendPrivatePath() is obsolete, I'm trying to figure out how to specify a PrivateBinPath for the current AppDomain in my project without spinning up a whole new AppDomain, and being able to access it later.

I know I can set the PrivateBinPath on an AppDomainSetup object (which would be ok if I wanted to create a new AppDomain), and I also know that I can add it to my app.config like so:

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath=".\AlternateLookupPath" />
    </assemblyBinding>
  </runtime>

However, when adding this entry to my app.config, the AppDomain.CurrentDomain.SetupInformation.PrivateBinPath property is null.

A: 

From the docs:

If the directories specified for PrivateBinPath are not under ApplicationBase, they are ignored.

So, you need to make sure the paths you are add are under ApplicationBase.

This only works with app.config however. If you need to do this at runtime, use the AssemblyResolve event as described in the docs:

http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx

The path is under ApplicationBase
scottm