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 作为其正常安装的一部分进行安装。 请检查以下链接。
链接:
- A sample of DTF code and more details (recommended - see same page for COM).
- The various APIs for MSI files.
注意,还有一些 WMI 函数。
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 作为其正常安装的一部分进行安装。 请检查以下链接。
链接:
- A sample of DTF code and more details (recommended - see same page for COM).
- The various APIs for MSI files.
注意,还有一些 WMI 函数。