为什么在VB6中使用Shell运行.MSI文件有时会失败?

为什么在VB6中使用Shell运行.MSI文件有时会失败?,vb6,windows-installer,Vb6,Windows Installer,我正在尝试使用以下代码从VB6应用程序启动.NET CF安装程序(为简洁起见,我已将安装程序的完整路径替换为“(完整路径)”): 到目前为止,我已经在四台机器上运行了这个。两种情况下效果良好,另两种情况下失败。当它工作时,CF安装程序只是运行。当它失败时,它做的第一件事就是弹出一个对话框,说“您试图使用的功能位于CD-ROM或其他不可用的可移动磁盘上。”该对话框提供了一个文本框来输入路径和一个浏览按钮来查找路径,因此我提供了路径,单击“打开”按钮并获得此错误,“错误1706。找不到产品Micro

我正在尝试使用以下代码从VB6应用程序启动.NET CF安装程序(为简洁起见,我已将安装程序的完整路径替换为“(完整路径)”):

到目前为止,我已经在四台机器上运行了这个。两种情况下效果良好,另两种情况下失败。当它工作时,CF安装程序只是运行。当它失败时,它做的第一件事就是弹出一个对话框,说“您试图使用的功能位于CD-ROM或其他不可用的可移动磁盘上。”该对话框提供了一个文本框来输入路径和一个浏览按钮来查找路径,因此我提供了路径,单击“打开”按钮并获得此错误,“错误1706。找不到产品Microsoft.NET Compact Framework 3.5的有效源。Windows安装程序无法继续。“


有人能告诉我这里出了什么问题吗?出现故障的机器缺少了什么?

可能是Compact Framework MSI本身有问题吗?你可以试试Microsoft(你有MSDN订阅吗?),或者在网站上发布


或者,尝试将日志参数添加到命令行“/l*LogFile.txt”(不包括引号),然后。

是否尝试在vb6失败的计算机上手动运行安装程序


如果确实有效,则可能不是安装程序问题。我猜这是一个执行路径问题,当路径变量设置正确时,shell会找到正确的组件

是的,手动运行安装程序。我提供了shell命令的完整路径,我看不到path环境变量设置如何可能很重要。在调用Shell之前,您是否尝试过将ChDir转换为“(完整路径)”呢?
Shell "C:\WINDOWS\system32\msiexec.exe /fa ""(full path)\NETCFSetupv35.msi"""