Comment accéder correctement à la propriété PrivateBinPath de l’AppDomain actuel?

Comme AppDomain.AppendPrivatePath () est obsolète, j’essaie de déterminer comment spécifier un PrivateBinPath pour le AppDomain actuel de mon projet sans créer de nouveau AppDomain et pouvoir y accéder ultérieurement.

Je sais que je peux définir PrivateBinPath sur un object AppDomainSetup (ce qui me conviendrait si je voulais créer un nouvel AppDomain), et je sais aussi que je peux l’append à mon app.config comme suit:

     

Toutefois, lors de l’ajout de cette entrée à mon app.config, la propriété AppDomain.CurrentDomain.SetupInformation.PrivateBinPath est null.

utilisation

       

Selon http://msdn.microsoft.com/en-us/library/823z9h8w.aspx, privatePath est déjà interprété en tant que “sous-répertoires du répertoire de base de l’application” … donc je soupçonne que l’utilisation de .\ Est en quelque sorte gâchant …

De la docs:

Si les répertoires spécifiés pour PrivateBinPath ne se trouvent pas sous ApplicationBase, ils sont ignorés.

Donc, vous devez vous assurer que les chemins que vous ajoutez sont sous ApplicationBase.

Cela ne fonctionne cependant qu’avec app.config. Si vous devez le faire au moment de l’exécution, utilisez l’événement AssemblyResolve comme décrit dans la documentation:

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