MSI.DLL函数加载mscoree.dll&的Mscorwks.dll

时间:2012-05-09 06:10:19

标签: .net windows-installer

我正在使用win32控制台应用程序而不依赖于dotnet框架。

我正在使用C:\ Windows \ System32 \ MSI.dll中的MsiOpenPackage API。 在执行API时,它会将MSCOREE.dll加载到我的进程中。

以下行将mscorwks.dll加载到我的进程中。

MsiDoAction(hInstall,_T("InstallValidate"));

MsiDoAction是来自MSI.dll的其他API。

如果我在没有安装点框架的干净的Windows XP OS(Service Pack 2)中运行应用程序,那么这些DLLS不会加载到我的进程中,但我的应用程序运行正常。

有谁知道为什么这些mscorwks.dll&如果在系统中安装了dotnet框架,MSCOREE.dll会加载到我的进程中吗?

我在纯win32控制台应用程序中的进程,并且与dotnet框架没有任何依赖关系。在开始这个过程时,我的进程中没有加载这两个dll。从MSI.DLL执行函数MsiOpenPackageMsiDoAction时会加载它。

请帮助我如何停止将这些DLL加载到我的进程中。

1 个答案:

答案 0 :(得分:0)

这可能是Windows Installer准备支持操作.NET程序集(例如将程序集安装到GAC)。我怀疑防止这种情况的唯一方法是在没有.NET框架的机器上运行。如果您根本不想在主进程中使用它,也许您应该在帮助程序中完成您的Msi工作。