我在 MSDN 上发布了这个问题,但是通过与 MS 支持沟通有点浪费时间,他们每天只给你一句话,没有任何线索:(,无论如何这是我的问题,感谢任何评论。
我在互操作项目中遇到程序集加载问题
即有3个VS项目:
A 是一个本地 C 项目,通过静态绑定引用 B,即 A 调用 B 的函数,如果你愿意;
B 是一个 CLI 包装器,它反过来静态引用 C 的对象;
C 是一个纯 .NET 代码的 CS 项目。
B 和 C 都使用强名称进行签名,并且它们的AssemblyInfo.cs和AssemblyInfo.cpp文件使用它们的密钥文件进行更新。
B 和 C 都使用gacutil.exe V4.0在 GAC 中注册。A 在注册 B.dll 的文件夹中引用了 B.dll,B 在注册 C 的同一个文件夹中引用了 C。
当我从 A 运行程序时,它失败并显示消息:
'程序无法启动,因为您的计算机中缺少 B.dll。尝试重新安装 > 程序来解决这个问题'。
我可以使它工作的唯一方法是将 B.dll 复制到 A.exe 的同一文件夹中。似乎 C.dll 是从 GAC 加载的。
混合装配在加载透视图中是否以不同的方式工作?