2012-03-02 6 views
11

En una aplicación de consola C#, estoy intentando usar <probing privatePath=""/> para señalar dlls que no están en los subdirectorios de mi aplicación. Estoy usando:Uso de una ruta absoluta para explorar privatePath

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

Esto no funciona, porque privatePath está buscando subdirectorios en mi solicitud. ¿Hay alguna manera de usar rutas absolutas de esta manera? De no ser así, ¿cuál es la mejor manera de señalar a los dlls que se encuentran fuera de mi aplicación? También traté de usar <codebase> con una ruta file:///, pero aun así obtuve una excepción de System.IO.FileNotFound.

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity 
     name="MyLibrary" publicKeyToken="29989D7A39ACF230" /> 
     <codeBase 
     version="2.0.0.0" 
     href="http://file:///D:/Library/References/NLog.dll"/> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

pero todavía tengo una excepción System.IO.FileNotFound.

Gracias!

Respuesta

13

acuerdo con MSDN:

Usted puede utilizar el elemento sólo en configuración de la máquina o archivos de política editor que también redirigen la versión de montaje. ... Si está proporcionando una sugerencia de base de código para un ensamblado que no es con nombre seguro, la sugerencia debe apuntar a la base de la aplicación o al subdirectorio del directorio base de la aplicación.

Probablemente haya intentado postularse en app.config?

y

Los directorios especificados en privatePath deben ser subdirectorios del directorio base aplicación.

+0

Obtuve la segunda parte. ¿Pero qué significa la primera parte? – Paul

+0

He editado la respuesta –

Cuestiones relacionadas