Для каких целей служат файлы unmanaged.dll.manifest? - PullRequest
2 голосов
/ 08 декабря 2008

Я наблюдаю, что файлы unmanaged.dll имеют теги unmanaged.dll.manifest. При открытии этих файлов в редакторе, это, кажется, обычный XML со ссылками на некоторые другие зависимые управляемые? сборок. Это похоже на недавнее изменение ... не помню, чтобы видел их раньше.

  • Зачем нужны эти файлы? (Если бы мне пришлось угадывать, это было бы для загрузки зависимых управляемых сборок и / или CLR)
  • Какую другую полезную информацию могут содержать эти файлы? Будут ли они также содержать ссылки на зависимые неуправляемые библиотеки DLL (что было бы неплохо)

.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.DebugMFC" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>

1 Ответ

4 голосов
/ 08 декабря 2008

То, что вы видите, называется " Параллельные сборки " (SxS). Microsoft расширила механизм .NET параллельно для неуправляемых DLL-библиотек и теперь называет их «сборками платформы». Вместо того, чтобы выполнять связывание по имени DLL, DLL теперь загружаются через манифест. Эквивалентом .NET GAC является папка \ windows \ WinSxS; это позволяет одновременно устанавливать несколько версий DLL в одной системе и связывать разные приложения с разными версиями одной и той же DLL. Он также включает возможности перенаправления, которые предлагает .NET; это в первую очередь то, что делают манифесты (допускает перенаправление).

Библиотеки DLL, указанные в манифесте (например, Microsoft.VC90.DebugCRT), также неуправляемы (т. Е. Собственный код)

Манифесты приложений служат и другим целям. Я не знаю деталей, но напомню, что выбор тем в XP также указан в манифестах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...