У меня была такая проблема в прошлом, и это было связано с тем, что оба процесса не были 32- или 64-битными. Если вы работаете с 32-битной ОС, вы можете прекратить чтение сейчас, потому что то, что я говорю, неприменимо.
Используйте regedit, чтобы попытаться найти ваши ProgIds и CLSID в реестре. Если ваш проект C ++ является 32-разрядным, убедитесь, что ваши классы C # были зарегистрированы в 32-разрядном кусте - HKEY_CLASSES_ROOT \ Wow6432Node. Если ваш C ++ проект 64-битный, убедитесь, что ваши классы C # были зарегистрированы в 64-битном кусте - HKEY_CLASSES_ROOT.
Если вам нужно зарегистрироваться в 64-битном кусте, вам может потребоваться вызвать версию RegAsm.exe по адресу c: \ windows \ microsoft.net \ framework64 ...
Другая возможность того, что что-то пойдет не так, заключается в том, что вам может потребоваться запустить regasm.exe .NET 4.0 версии. Если вы просто наберете «regasm» в командной строке, это даст вам версию regasm, которую вы используете. Возможно, вам потребуется ввести полный путь к версии .NET 4.0 regasm, который находится по адресу c: \ windows \ microsoft.net \ framework \ v4.0.3019 \ regasm.exe.