Próbuję założyć zespół wiążącej przekierowanie, stosując następujący app.config:Montaż wiązania przekierowanie nie działa
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.AnalysisServices"
PublicKeyToken="89845dcd8080cc91" />
<bindingRedirect oldVersion="10.0.0.0"
newVersion="9.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Używam programu na komputerze z wersji 9.0.242.0 w GAC z określonym tokenem klucza publicznego. Wydaje się, że CLR nie próbuje przekierować wiązania, aby użyć tej wersji.
Oto co mam w fuslogvw.exe:
LOG: This bind starts in default load context. LOG: Using application configuration file: \Debug\AssemblyRedirectPOC.exe.Config LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config. LOG: Post-policy reference: Microsoft.AnalysisServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL /Debug/Microsoft.AnalysisServices.DLL. LOG: Attempting download of new URL /Debug/Microsoft.AnalysisServices/Microsoft.AnalysisServices.DLL. LOG: Attempting download of new URL /Debug/Microsoft.AnalysisServices.EXE. LOG: Attempting download of new URL /Debug/Microsoft.AnalysisServices/Microsoft.AnalysisServices.EXE. LOG: All probing URLs attempted and failed.
Kiedy próbowałem oddanie dll wersji 9.0.242.0 w ścieżce sondy, mam to w zamian:
LOG: Assembly download was successful. Attempting setup of file: \Debug\Microsoft.AnalysisServices.dll LOG: Entering run-from-source setup phase. LOG: Assembly Name is: Microsoft.AnalysisServices, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 WRN: Comparing the assembly name resulted in the mismatch: Major Version ERR: The assembly reference did not match the assembly definition found. ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
Należy zauważyć, że próbowałem zmienić przekierowanie na "9.0.242.0" zamiast "9.0.0.0" w pliku app.config i to nie działało, chociaż uważam, że nie powinno to mieć znaczenia.
Z tego co rozumiem, cały sens przekierowania wiązania polega na użyciu wersji, która nie jest zgodna z wersją, z której został zbudowany program. Czy całkowicie tu czegoś brakuje? Czy to, co staram się robić, a jeśli tak, to jakikolwiek pomysł, dlaczego to nie działa?
zdrowie, Adam
dodanie 'xmlns =" urn: schemas = microsoft-com: asm.v1 "' rozwiązało problem dla mnie.Dzięki! – trailmax
Złe (z = zamiast -) * przepracowany * dla ciebie? – Zack