Installer::ProvideAssembly 方法

Installer 对象的 ProvideAssembly 方法返回程序集的已安装路径。

语法

retVal = .ProvideAssembly(
  assembly,
  appContext,
  installMode,
  assemblyInfo
)

参数

assembly

要查询的已安装程序集的强名称。

appContext

对于全局程序集,设置为 Null。 对于专用程序集,请将 appContext 设置为应用程序配置文件的完整路径或程序集已设为专用的应用程序的可执行文件的完整路径。

installMode

定义安装模式。 此参数的取值可为下列值之一:

含义
msiInstallModeDefault
0
提供组件并执行提供组件所需的任何安装。
msiInstallModeExisting
-1
仅当功能存在时提供组件。 此选项将验证程序集是否存在。
msiInstallModeNoDetection
-2
仅当功能存在时提供组件。 此选项不验证程序集是否存在。
msiInstallModeNoSourceResolution
-3
仅当程序集是在本地安装时提供程序集。
ReinstallFeature 使用的标志的组合
调用 ReinstallFeature 方法,为 ReinstallMode 使用此参数重新安装该功能,然后返回程序集路径。

 

assemblyInfo

程序集信息和程序集类型。 设置为以下值之一。

含义
msiProvideAssemblyNet
0
.NET 程序集。
msiProvideAssemblyWin32
1
Win32 并行程序集。

 

返回值

已安装程序集的路径。

备注

ProvideAssembly 方法使用 MsiProvideAssembly 函数。

示例

以下示例脚本演示了如何使用 ProvideAssembly 方法。

Dim installer
Set installer = CreateObject("WindowsInstaller.Installer")

'
' ProvideAssembly - .NET global
'   
MsgBox Installer.ProvideAssembly("System.Security,Version=""1.0.5000.0"",PublicKeyToken=""b03f5f7f11d50a3a"",Culture=""neutral"",FileVersion=""1.1.4322.573""", vbNullString, 0, 0)

'
' ProvideAssembly - .NET private
'   
MsgBox Installer.ProvideAssembly("Sample,Version=""1.0.0.0"",Culture=""neutral""", "C:\Program Files\Microsoft\Sample\Sample.exe", 0, 0)

'
' ProvideAssembly - win32 global
'
MsgBox Installer.ProvideAssembly("Microsoft.MSXML2,publicKeyToken=""6bd6b9abf345378f"",version=""4.1.0.0"",type=""win32"",processorArchitecture=""x86""", vbNullString , -2, 1)

要求

要求
版本
Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 和 Windows XP 上的 Windows Installer 4.5
DLL
Msi.dll
IID
IID_IInstaller 定义为 000C1090-0000-0000-C000-000000000046

另请参阅

安装程序

在 Windows Installer 3.1 及更低版本中不受支持