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

Installation COM msi.dll WindowsInstaller和Microsoft.Deployment.WindowsInstaller之间有什么区别?,installation,windows-installer,Installation,Windows Installer,COM msi.dll WindowsInstaller和Microsoft.Deployment.WindowsInstaller之间有什么区别 我知道一个存在于%WINDIR%\system32\msi.dll中,另一个存在于Visual Studio的引用程序集列表中 我知道安装程序对象的实现是完全不同的 为什么WindowsInstaller有两种不同的实现?为什么它们被称为相同的呢?MSI API:Windows Installer API非常古老,实现为Win32 C/C++函数,顶

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

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

我知道安装程序对象的实现是完全不同的

为什么WindowsInstaller有两种不同的实现?为什么它们被称为相同的呢?

MSI API:Windows Installer API非常古老,实现为Win32 C/C++函数,顶部有一层
COM自动化(可以使用VBScript和许多其他语言访问)。这都是在
%WINDIR%\system32\msi.dll
文件中实现的(不管涉及到什么其他支持文件——我不太确定——当然还有
msiexec.exe
——用于安装和配置MSI软件包和
msihnd.dll
——我认为还有一些其他文件)

DTF(部署工具基础)随着.NET框架和托管代码的出现,使用COM和Win32函数是笨拙的,部署工具基础工具包也被称为“代码> DTF”,以帮助使用具有托管代码< /代码>的MSI API。该文件:<强> >代码>微软。部署。作为DTF的一部分,也是最常用的一种。WiX工具包现在将DTF作为其正常安装的一部分进行安装。请查看下面的链接

链接

  • (建议-)


请注意,还有一些WMI函数。

Stein,再次感谢您的回答。我对DTF做了更多的挖掘,看到了非常有用的帮助文件。但是,对于使用C#的特定GUID,我在这两个函数上都遇到了一个问题。您介意看看我的代码吗?