Я использую стороннюю библиотеку COM с C #, все отлично работает на 32-битной XP. Я использую tlbimp, чтобы создать обертку, добавить ссылку все работы. Однако при портировании в нашу серверную среду, которая является 64-битной Windows Server 2008, я столкнулся с препятствием.
Код ниже работает правильно только тогда, когда я щелкаю правой кнопкой мыши и тестирую его, т.е. запускаю в среде VS. Код не работает при компиляции в консольное приложение, а также код не работает в сборке, будь то в тесте или вызывается из консольного приложения. В попытке заставить его работать, я работаю от имени администратора и в 32-битном командном окне - все еще ничего не всегда имеет значение null, и не выдается исключение, указывающее, что GrpSvr.GrpCall является допустимым именем библиотеки Com.
string sMessage = "no grouper";
GrpSvr.GrpCall grouper = Activator.CreateInstance(
Type.GetTypeFromProgID("GrpSvr.GrpCall")) as GrpSvr.GrpCall;
if (grouper != null)
sMessage = grouper.GroupInit(@"C:\CmdGrp.txt", true, true);
Console.WriteLine(sMessage);