Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начиная с Windows XP вы можете создать частную сборку и сделать ее доступной для конкретного приложения. Эту возможность можно использовать для исправления приложения, которое становится несовместимым с обновлением. Примером будет приложение, которое становится несовместимым с последней версией MSVCRT.DLL после обновления операционной системы. В этом случае вы не можете заменить системную версию, так как MSVCRT.DLL является защищенным файлом Windows. Вместо того чтобы переписать приложение для работы с новой версией MSVCRT, можно создать частную сборку для MSVCRT и установить ее в папке приложения. Обратите внимание, что не каждый общий компонент является подходящим кандидатом для частной параллельной сборки, и некоторые компоненты имеют ограничения на лицензирование о том, где их компоненты могут быть установлены. Компонент должен соответствовать критериям для параллельного компонента. Попросите издателя компонента предоставить подходящую сборку.
Манифест частной сборки и манифест приложения должны быть установлены в той же папке, что и исполняемый файл приложения. При запуске приложения он обращается к манифесту приложения и загружает версию MSVCRT, которая является частной для приложения.
В этом примере частная сборка будет включать как MSVCRT.DLL, так и MSVCIRT.DLL, как в следующем манифесте сборки:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32"
name="Microsoft.Windows.PrivateCPlusPlusRuntime"
version="6.0.0.0"
processorArchitecture="x86"/>
<file name="msvcrt.dll"/>
<file name="msvcirt.dll"/>
</assembly>
Ниже приведен пример возможного манифеста приложения.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="x86"
name="APPLICATION"
type="win32"
/>
<description>Description of Application</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.PrivateCPlusPlusRuntime"
version="6.0.0.0"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>