我在 Managed C++ 中创建了一个自定义 UserControl,它包装了一些本机代码控件。我已经确认控件在运行时工作,并且一直在尝试通过允许从设计器工具箱中拖放控件来使控件与 Visual Studio 设计器一起工作。
虽然我已成功将 UserControl 添加到工具箱,但当我将控件拖到 Windows 窗体上时没有任何反应。为了调查这个问题,我打开了第二个 Visual Studio 2008 实例并将其调试器附加到我尝试使用 UserControl 的 devenv.exe 实例。将 UserControl 拖放到 Windows 窗体后,Visual Studio 调试器在尝试加载包含 UserControl 的模块时会在 mscorlib.dll 中输出 FileNotFoundException。
我注意到设计器不会从项目的输出路径加载 dll,而是在 %UserData%\VisualStudio\9.0\ProjectAssemblies\ RandomFolderName文件夹中创建程序集的副本。但是,没有复制任何模块的依赖项,我认为这是 FileNotFoundException 的来源。
任何想法如何解决这个问题?理想情况下,在将 dll 复制到 ProjectAssemblies 文件夹时,Vistual Studio 会复制所有程序集的依赖项,但我想不出任何方法来实现这一点。