我正在为 Windows 上的应用程序编写 .vbs 脚本。问题在于脚本内部使用了 ArrayList。 MDSN 指出安装的 .NET Framework 4.8 足以使用 ArrayList。问题是这样的 - 我在两台机器上测试了这个脚本:一台运行 Windows 10,另一台运行 Windows Server 2016。在 Windows 10 上一切正常,但在 Windows Server 2016 上它会抛出错误“.NET Framework 3.5 不是安装”(或类似的东西)。此外,此错误仅在第一次尝试运行脚本期间和创建 ArrayList 对象时出现一次。最终,我通过在 Windows Server 2016 机器上手动启用 .NET Framework 3.5 功能解决了该问题。问题是,执行此类操作对于我们的应用程序用户来说似乎太麻烦了。理论上,该脚本应该在安装 .NET Framework 4.8(这是我们的应用程序工作的先决条件)后就可以工作,但它不起作用,我不明白为什么。我尝试搜索这方面的信息,并发现了一些关于在 .NET 3.5 以外的 .NET 上使用 ArrayList 的问题的帖子。我已经在我的脚本中使用了后期绑定(如果我理解正确的话,这是通过 CreateObject("System.Collections.ArrayList") 创建一个对象),但这没有帮助。另外,WServer 2016上的机器安装了.NET Framework 4.8(我根据MDSN上的说明通过注册表查看了版本),但直到我启用.NET 3.5,该脚本才起作用。导致 ArrayList 无法与 .NET Framework 4.8 一起使用的问题可能是什么?这可能是 Windows Server 2016 的一些本地问题吗?
作为一个稍微替代的解决方案,可以选择不使用 ArrayList,而是使用字典。 VBS字典还具有Exist和Remove函数(就我个人而言,我在常规数组中缺少它们),但这仍然是解决问题的稍微不同的方法