我正在使用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执行函数MsiOpenPackage
,MsiDoAction
时会加载它。
请帮助我如何停止将这些DLL加载到我的进程中。
答案 0 :(得分:0)
这可能是Windows Installer准备支持操作.NET程序集(例如将程序集安装到GAC)。我怀疑防止这种情况的唯一方法是在没有.NET框架的机器上运行。如果您根本不想在主进程中使用它,也许您应该在帮助程序中完成您的Msi工作。