涉及卷影副本文件夹的外部组件异常
本文关键字:外部 组件 异常 文件夹 副本 | 更新日期: 2023-09-27 18:35:24
>我有一个应用程序在尝试从 C# 到 C++ 进行通信时抛出"外部组件抛出异常"错误(更正:这是从 C++ 到 C#)。C# 解决方案涉及我们认为可能与该问题关联的 VSTO 外接程序。只有用户能够复制此问题,该问题的临时修复方法是清除其计算机上的"AppData''Local''assembly''dl3"卷影复制文件夹。VSTO 加载项似乎正在该文件夹中创建 dll 作为卷影副本,并且似乎没有办法阻止它。
有人对如何解决这个问题有任何想法吗?
编辑:仅当调用 C# DLL 的C++应用程序发生网络更新并且其他用户仍处于登录状态时,才会出现此问题。如果 VSTO 外接程序创建的 DLL 的卷影副本不存在,则不存在问题。如果卷影副本确实存在,则在 C# 应用程序发生更新或删除卷影副本之前,这两个产品将无法通信。但是,使用 VSTO 外接程序将导致重新创建卷影副本并再次断开连接。
事实证明,问题是对...
Assembly.GetExecutingAssembly().Location
C++称为C++ DLL的解决方案,它是我的C#解决方案的一部分,它将使用...
Assembly::LoadFrom(assemblyPathString)
然后,该程序集将进行有问题的调用,该调用将查找不同的影子复制 DLL 而不是原始位置。切换呼叫以使用...
new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath
。解决了这个问题。我不确定 Uri 和 LocalPath 部分是必要的还是矫枉过正。