COM msi.dll WindowsInstaller 和 Microsoft.Deployment.WindowsInstaller 有什么区别?

What are the differences between COM msi.dll WindowsInstaller and Microsoft.Deployment.WindowsInstaller?

COM msi.dll WindowsInstaller 和 Microsoft.Deployment.WindowsInstaller 有什么区别?

我知道一个存在于 %WINDIR%\system32\msi.dll 中,另一个存在于 Visual Studio 的参考程序集列表中。

我知道 Installer 对象的实现完全不同。

为什么有两种不同的 WindowsInstaller 实现?为什么它们叫同一个名字?

MSI API: Windows 安装程序 API 很旧并且已实现作为 Win32 C/C++ functions 和一层 COM automation (您可以使用 VBScript 和许多其他语言来访问) .这都是在 %WINDIR%\system32\msi.dll 文件中实现的(以及涉及的任何其他支持文件 - 我不太确定 - 还有msiexec.exe 当然 - 安装和配置 MSI 包的实际安装引擎和命令行工具和 msihnd.dll - 和我想还有几个)。

DTF (Deployment Tools Foundation):作为.NET框架和托管代码随着时代的到来,COM 和 Win32 函数的使用有点笨拙,部署工具基础工具包 - 也称为 DTF was implemented to help use the MSI API with managed code。文件:Microsoft.Deployment.WindowsInstaller.dll 是作为 DTF 的一部分提供的文件之一,也是最常用的文件。 WiX 工具包现在将 DTF 作为其正常安装的一部分进行安装。 请检查以下链接

链接:


注意,还有一些 WMI 函数。