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