2012-03-02 17 views
11

W aplikacji konsoli C# próbuję użyć <probing privatePath=""/> do wskazania bibliotek dll, które nie znajdują się w podkatalogach aplikacji. Używam:Korzystanie z bezwzględnej ścieżki w sondy privatePath

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

To nie działa, ponieważ privatePath szuka podkatalogów w mojej aplikacji. Czy istnieje sposób na wykorzystanie absolutnych ścieżek w ten sposób? Jeśli nie, jaki jest najlepszy sposób wskazania bibliotek DLL znajdujących się poza moją aplikacją? Próbowałem również używać <codebase> ze ścieżką file:///, ale nadal mam wyjątek 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> 

ale nadal otrzymałem wyjątek od System.IO.FileNotFound.

Dzięki!

Odpowiedz

13

według MSDN:

Można użyć elementu tylko w konfiguracji maszyny lub wydawcy pliki polityki że również przekierować wersję montażową. ... ... ... Jeśli podajesz podstawową zasadę kodu dla zespołu, który nie jest o silnej nazwie, wskazówka musi wskazywać na bazę aplikacji lub podkatalog katalogu podstawowego aplikacji.

Prawdopodobnie próbowałeś złożyć wniosek w app.config?

i

katalogi podane w privatePath musi być podkatalogi z katalogu bazowego aplikacji.

+0

Mam drugą część. Ale co oznacza pierwsza część? – Paul

+0

Mam edytowaną odpowiedź –

Powiązane problemy