ApplicationRedirect does not apply to Dlls to bind application configuration file

I created a simple Win32 application to demonstrate UXtheme on XP, including the manifest dependency on version 6 of the commctl32.dll, then I created a simple Win32 DLL, built it with ISOLATION_AWARE_ENABLEDand tested it with the built-in manifest, specifying both versions 5 and 6 of Comctl32. dll

I have successfully received exe and dll for using different versions of comctl32.dll using this method. And with exe using 5, and with dll version 6, and vice versa.

Then I reset the application AND dll to have a manifest dependency comctl ver 5. And presented the application configuration file:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
  <windows>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" processorArchitecture="amd64" publicKeyToken="6595b64144ccf1df"/>
        <bindingRedirect oldVersion="5.82.7100.0" newVersion="6.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </windows>
</configuration>

, , commctl v6 - , XP UXTheme. , dll themed ver 5 of commctl.

per-dll bindRedirects . .

, Redirect , Im commctl32 .

DLL?

+3
2

, .

  • Process Monitor ,
  • , .manifest .config csrss.exe, ,
  • Windows Vista .manifest .config, , exe.

, LoadLibrary .config dll:

full_path_to_dll\dllname.dll.2.config

.

+3

Windows Vista .manifest .config, , exe.

, / , , , .

+4

Source: https://habr.com/ru/post/1716323/


All Articles