ОК, я вставил следующий код в класс, который представлен как COM-объект, и он, кажется, работает:
[ComRegisterFunction]
private static void Register(Type registerType)
{
if (registerType != null)
{
using (RegistryKey clsidKey = Registry.ClassesRoot.OpenSubKey("CLSID"))
{
using (RegistryKey guidKey = clsidKey.OpenSubKey(registerType.GUID.ToString("B"), true))
{
using (RegistryKey inproc = guidKey.OpenSubKey("InprocServer32", true))
{
inproc.SetValue("ThreadingModel", "Apartment", RegistryValueKind.String);
}
}
}
}
}
Я вообще не понимаю , почему меняемThreadingModel от руки не дал того же результата, но мне все равно ...