2012-03-02 20 views
11

In un'applicazione di console C#, sto tentando di utilizzare <probing privatePath=""/> per puntare a DLL che non si trovano nelle sottodirectory dell'applicazione. Sto utilizzando:Utilizzo di un percorso assoluto per il sondaggio di privatePath

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

Questo non funziona, perché privatePath è alla ricerca di sottodirectory nella mia applicazione. C'è un modo per usare percorsi assoluti in questo modo? In caso contrario, qual è il modo migliore per indicare le DLL che si trovano all'esterno della mia applicazione? Ho anche provato a utilizzare <codebase> con un percorso file:///, ma ho ancora un'eccezione 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> 

ma ancora ottenuto un'eccezione System.IO.FileNotFound.

Grazie!

risposta

13

secondo le MSDN:

È possibile utilizzare l'elemento solo nella configurazione della macchina o file dei criteri editore che reindirizzano anche la versione di montaggio. ... Se si fornisce un suggerimento per il codice base per un assieme che non è il con nome sicuro, l'hint deve puntare alla base dell'applicazione o una sottodirectory della directory della base dell'applicazione.

Probabilmente hai provato ad applicare in app.config?

e

Le directory specificate nel privatePath devono essere sottodirectory della cartella base applicazione.

+0

Ho ricevuto la seconda parte. Ma cosa significa la prima parte? – Paul

+0

Ho modificato la risposta –

Problemi correlati