VS2012 Designer无法加载程序集

时间:2013-05-09 17:18:57

标签: c# user-interface visual-studio-2012 desktop-application windows-forms-designer

有一个C#项目的解决方案引用托管C ++库,该库反过来引用本机C ++库。 C#项目包含BaseUserControl和ChildUserControl,它扩展了它。

问题是:如果在BaseUserControl的构造函数中调用来自本机C ++的代码(通过托管C ++库),则无法在设计器视图中查看ChildUserControl;也不能将BaseUserControl或ChildUserControl添加到表单中。我们收到以下错误:

  

无法加载文件或程序集'TestLibCPP,Version = 1.0.4877.30347,   Culture = neutral,PublicKeyToken = null'或其依赖项之一。该   系统找不到指定的文件。

我们如何解决这个问题?

我添加了simple VS2012 solution来证明问题。这是一个基于我们在最近从VS2005转换为VS2012的大型代码库时遇到的问题的人为举例。

由于

4 个答案:

答案 0 :(得分:0)

如果您有源代码,请尝试使用配置(X86平台)重建解决方案,然后尝试使用设计器打开Child UserControl。

答案 1 :(得分:0)

问题可能是您的本机dll构建在32位配置之上尝试在32位平台上构建项目

答案 2 :(得分:0)

尝试将GUITest平台目标更改为x86。它目前是任何CPU'。无论你是64位还是32位,你都可以这样做。请务必查看配置中的平台(Debug,Release,..)

答案 3 :(得分:0)

问题完全基于C ++项目的X86架构。您的WinForms项目引用“任何CPU”。

我已经附上了一张图片,告诉你在哪里更换它(它是用德语制作的,但你应该从屏幕上的位置找到它)。

  1. 右键单击Winforms项目并转到设置
  2. 切换到标签编译(猜测它的英文名称)
  3. 将目标平台更改为x86
  4. 建立并享受乐趣;)
  5. How to change Target Platform

    编辑:

    我刚刚看到Bounty问题是关于将所有内容设置为64位,以便实现简单地将C ++ dll的目标设置为x64架构。

    1. 右键单击任何c ++ DLL并转到设置
    2. 在上方区域,您将看到一个名为configuration-manager
    3. 的按钮
    4. 在新打开的窗口中,只需将所有C ++ dll设置为x64。
    5. 如果无法选择只需单击箭头并为第二个项目创建一个新的x64(非ARM)架构,请选中“创建新”复选框并选择之前创建的一个。
    6. enter image description here