У меня есть приложение, которое выдает ошибку «Внешний компонент вызвал исключение» при попытке связи с С# на С++ (исправление: это с С++ на С#). Решение C# включает надстройку VSTO, которая, по нашему мнению, может быть связана с проблемой. Только пользователи смогли воспроизвести эту проблему, и временное решение этой проблемы состояло в том, чтобы очистить папку теневой копии «AppData\Local\assembly\dl3» на их компьютере. Похоже, что надстройка VSTO создает библиотеки DLL в этой папке в виде теневых копий и похоже, нет способа предотвратить это.
У кого-нибудь есть идеи о том, как решить эту проблему?
Изменить: проблема возникает только тогда, когда происходит сетевое обновление для приложения C++, вызывающего DLL C#, а другой пользователь все еще находится в системе. Если теневая копия DLL, созданная надстройкой VSTO, не существует, то нет вопросы. Если теневая копия существует, два продукта не смогут обмениваться данными, пока не произойдет обновление приложения C# или если теневая копия не будет удалена. Однако использование надстройки VSTO приведет к воссозданию теневой копии и повторному разрыву соединения.