Функция MsiProvideAssemblyW (msi.h)
Функция MsiProvideAssembly возвращает полный путь к компоненту установщика Windows, который содержит сборку. Функция запрашивает источник и выполняет необходимую установку. MsiProvideAssembly увеличивает число использования функции.
Синтаксис
UINT MsiProvideAssemblyW(
[in] LPCWSTR szAssemblyName,
[in] LPCWSTR szAppContext,
[in] DWORD dwInstallMode,
[in] DWORD dwAssemblyInfo,
[out] LPWSTR lpPathBuf,
[in, out] LPDWORD pcchPathBuf
);
Параметры
[in] szAssemblyName
Имя сборки в виде строки.
[in] szAppContext
Для глобальных сборок задайте значение NULL. Для частных сборок задайте для szAppContext полный путь к файлу конфигурации приложения или полный путь к исполняемому файлу приложения, для которого сборка была закрыта.
[in] dwInstallMode
Определяет режим установки. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Укажите компонент и выполните установку, необходимую для предоставления компонента. Если файл ключа компонента в запрошенном компоненте или родительском компоненте отсутствует, переустановите компонент с помощью MsiReinstallFeature со следующими битами флагов: REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA и REINSTALLMODE_SHORTCUT. |
|
Укажите компонент только в том случае, если функция существует. В противном случае верните ERROR_FILE_NOT_FOUND.
Этот режим проверяет, существует ли файл ключа компонента. |
|
Укажите компонент только в том случае, если функция существует. В противном случае верните ERROR_FILE_NOT_FOUND.
Этот режим только проверяет, зарегистрирован ли компонент, и не проверяет, существует ли файл ключа компонента. |
|
Укажите компонент, только если состояние установки компонента INSTALLSTATE_LOCAL. Если состояние установки компонента — INSTALLSTATE_SOURCE, верните ERROR_INSTALL_SOURCE_ABSENT. В противном случае верните ERROR_FILE_NOT_FOUND. Этот режим только проверяет, зарегистрирован ли компонент, и не проверяет, существует ли файл ключа. |
|
Укажите компонент, если компонент существует из любого установленного продукта. В противном случае верните ERROR_FILE_NOT_FOUND. Этот режим только проверяет, зарегистрирован ли компонент, и не проверяет, существует ли файл ключа компонента. Этот флаг аналогичен флагу INSTALLMODE_NODETECTION, за исключением того, что с этим флагом мы проверка для любого продукта, в котором установлена сборка, а не для последнего продукта, как в случае с флагом INSTALLMODE_NODETECTION. Этот флаг можно использовать только с MsiProvideAssembly. |
|
Вызовите MsiReinstallFeature , чтобы переустановить функцию, используя этот параметр для параметра dwReinstallMode , а затем укажите компонент. |
[in] dwAssemblyInfo
Сведения о сборке и тип сборки. Задайте одно из следующих значений.
Значение | Значение |
---|---|
|
Сборка .NET |
|
Сборка Win32 |
[out] lpPathBuf
Указатель на переменную, которая получает путь к компоненту. Этот параметр может быть нулевым.
[in, out] pcchPathBuf
Указатель на переменную, указывающую размер буфера в символах, на который указывает параметр lpPathBuf . На входных данных это полный размер буфера, включая пробел для завершающего символа NULL. Если переданный буфер слишком мал, возвращаемое число не включает завершающий символ NULL.
Если lpPathBuf имеет значение NULL, pcchPathBuf может иметь значение NULL.
Возвращаемое значение
Значение | Значение |
---|---|
|
Данные конфигурации повреждены. |
|
Функция отсутствует или не работает. Эта ошибка возвращается для dwInstallMode = INSTALLMODE_EXISTING. |
|
Сбой установки. |
|
Запрашиваемый компонент отключен на компьютере. |
|
В функцию передан недопустимый параметр. |
|
Функция успешно завершена. |
|
Идентификатор компонента не идентифицирует известный компонент. |
|
Идентификатор компонента не указывает известный компонент. |
|
Код продукта не идентифицирует известный продукт. |
|
В функцию передано нераспознанное имя продукта или функции. |
|
Возвращается переполнение буфера. |
|
В системе недостаточно памяти для выполнения операции. Доступно в Windows Server 2003. |
|
Не удалось обнаружить источник. |
Дополнительные сведения см. в разделе Отображаемые сообщения об ошибках.
Комментарии
При успешном выполнении функции MsiProvideAssembly параметр pcchPathBuf содержит длину строки в lpPathBuf.
Параметр INSTALLMODE_EXISTING нельзя использовать в сочетании с флагом REINSTALLMODE.
Компоненты с компонентами, содержащими поврежденный файл или неправильную версию файла, должны быть явно переустановены пользователем или вызваны приложением MsiReinstallFeature.
Примечание
Заголовок msi.h определяет MsiProvideAssembly в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или Установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Установщик Windows в Windows Server 2003 или Windows XP. Сведения о минимальном пакете обновления Windows, необходимом для версии установщика Windows, см. в статье Требования к установщику Windows Run-Time. |
Целевая платформа | Windows |
Header | msi.h |
Библиотека | Msi.lib |
DLL | Msi.dll |