我有一个应用程序在尝试从C#到C++通信时抛出“外部组件抛出异常”错误(更正:这是从C++到C#)。C#解决方案涉及一个VSTO插件,我们认为该插件可能与该问题相关。只有用户才能复制此问题,此问题的临时修复方法是清除其计算机上的"AppData\Local\assembly\dl3“卷影复制文件夹。VSTO外接程序似乎正在创建该文件夹中的dll作为卷影副本和there does not seem to be a way to prevent it。
有没有人有办法解决这个问题?
编辑:仅当对调用C#动态链接库的C++应用程序进行网络更新,并且另一个用户仍在登录时,才会出现此问题。如果由VSTO外接程序创建的DLL的卷影副本不存在,则不存在任何问题。如果卷影副本确实存在,则在对C#应用程序进行更新或删除卷影副本之前,这两个产品将无法通信。使用VSTO外接程序将导致卷影副本重新创建,并再次中断连接。
发布于 2016-03-03 05:13:33
原来这个问题是打给...
Assembly.GetExecutingAssembly().Location C++解决方案调用了一个C++ DLL,它是我的C#解决方案的一部分,它将使用...
Assembly::LoadFrom(assemblyPathString)然后,该程序集将进行有问题的调用,该调用将找到不同的卷影复制的DLL,而不是原始位置。正在将呼叫切换为使用...
new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath ..。解决了问题。我不确定Uri和LocalPath部分是必要的还是过度杀伤力。
https://stackoverflow.com/questions/35486551
复制相似问题