На моем компьютере для разработки и в клиентской среде у нас есть двоичный файл 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? Я также попытался запустить двоичный файл с тем же пользователем домена, который я использую на своей локальной машине.
Почему эта разница между двумя компьютерами/средами?