Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VB6中使用.NET中的System.Collections.ArrayList_.net_Vb6_Com Interop_Mscorlib - Fatal编程技术网

在VB6中使用.NET中的System.Collections.ArrayList

在VB6中使用.NET中的System.Collections.ArrayList,.net,vb6,com-interop,mscorlib,.net,Vb6,Com Interop,Mscorlib,在我的开发机器和客户环境中,我们有一个Visual Basic 6二进制文件,可以执行以下操作: dim x as object set x = CreateObject("System.Collections.ArrayList") 。。。它按预期工作(我们可以向其中添加项目、获取计数等) 最近,我们安装了一台新的Windows Server 2012 R2机器(操作系统中包含.NET 4.X)。当我尝试在此计算机上运行相同的VB6二进制文件时,上面的一行出现错误: “自动化错误” 如果我添

在我的开发机器和客户环境中,我们有一个Visual Basic 6二进制文件,可以执行以下操作:

dim x as object
set x = CreateObject("System.Collections.ArrayList")
。。。它按预期工作(我们可以向其中添加项目、获取计数等)

最近,我们安装了一台新的Windows Server 2012 R2机器(操作系统中包含.NET 4.X)。当我尝试在此计算机上运行相同的VB6二进制文件时,上面的一行出现错误:

“自动化错误”

如果我添加对C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.tlb的引用,它仍然可以在本地开发计算机上运行

dim x as New ArrayList
x.Add("test")
x.Count ' 1
…但仍会在2012服务器上出现自动化错误

运行二进制文件(LocalSystem)的用户是否可能没有使用DLL的权限?我还尝试使用我在本地计算机上使用的同一个域用户运行二进制文件


为什么这两台计算机/环境之间存在这种差异?

似乎.NET 4.X是与Windows一起安装的。IT同事jut使用添加/删除Windows功能UI安装.NET2.x和3.x。我以前曾尝试使用Microsoft web安装程序安装它们,但失败了。安装了.NET 2.x和3.x后,VB6可执行文件现在可以正确实例化System.Collections.ArrayList库,并且可以正常工作。我怀疑这意味着.NET 4.x不提供COM接口。

我想我可能只安装了.NET 64位,但我在这个目录中有几个版本:C:\Windows\Microsoft.NET\Framework一些人建议重新安装.NET 2.0或3.x。但是,当我尝试在Server 2012 R2上执行此操作时,我只收到一个错误消息,“…无法安装。无法通过Windows功能控制面板自动安装或卸载Windows服务器角色和功能”(尽管我正在手动运行安装程序。根据我的经验,这些类型的问题与app.config文件有关。请参阅以下答案:和。还可以使用process hacker或procexp并确定调用了哪个.net clr:听起来像是安装问题。尝试修复组件…比较以下注册表项请参阅。)如果它们在您的工作机器上看起来相同:HKLM\SOFTWARE\Classes\CLSID\{6896B49D-7AFB-34DC-934E-5ADD38EEEE39}和HKLM\SOFTWARE\Classes\System.Collections。ArrayList@froqueapp.config?这是一个VB6可执行文件,没有app.config。