我有一个应用程序在尝试从 C# 到 C++ 通信时抛出“外部组件已引发异常”错误(更正:这是从 C++ 到 C#)。C# 解决方案涉及我们认为可能与该问题相关的 VSTO 加载项。只有用户能够复制此问题,并且该问题的临时解决方案是清除其计算机上的“AppData\Local\assembly\dl3”卷影副本文件夹。似乎 VSTO 加载项正在将该文件夹中的 dll 创建为卷影副本,并且似乎没有办法阻止它。
有人对如何解决这个问题有任何想法吗?
编辑:仅当 C++ 应用程序调用 C# DLL 的网络更新发生并且另一个用户仍然登录时,才会出现此问题。如果由 VSTO 加载项创建的 DLL 的卷影副本不存在,则没有问题。如果卷影副本确实存在,那么这两个产品将无法通信,直到 C# 应用程序发生更新或删除了卷影副本。使用 VSTO 加载项将导致重新创建卷影副本并再次中断连接。