我有 C#、C++ 和 C++/CLI 项目的解决方案。更具体地说:它是 C++ 核心(约 5 个非托管 dll)、C++/CLI 核心包装器和具有项目特定业务逻辑的 C# 程序集。
前段时间我发现 VS 2008 表单设计器 (WinForms) 有时无法加载核心包装程序集。在使用 VS 调试器和 Procmon 几个小时后,我发现 VS 无法加载程序集,因为它无法解析包装器所依赖的非托管库。VS 从 PATH 环境变量中搜索每个系统文件夹和文件夹,但不在包装程序集所在的文件夹中搜索。
此外,我在一个程序集中有 2 个表单,一个是从另一个继承的:VS 表单设计器可以很好地加载父表单,但无法加载继承的表单。
所以,这是我的问题:有人知道这种行为的原因吗?
PS我使用了解决方法:将带有项目二进制文件的文件夹添加到PATH变量,但我仍然想知道原因。