2012-01-20 32 views
2

我有一个中心DLL,包含我们所有的资源,并自动生成。WinForms设计器错误(无法加载资源)

我有一个UserControl在其构造函数中设置它的一些属性。这个用户控件在设计器中加载就好了。

当我将UserControl放在窗体上时,我无法在设计器中打开该窗体。我得到的错误,如

未能从程序集 加载类型MyResourceType 'MyResourceAssembly,版本= 1.0.0.0,文化=中立, 公钥=空'。这个错误的
实例(1)

  1. 隐藏调用堆栈
    在MyUserControl..ctor()
+0

你如何引用其他dll,项目或文件引用? –

+0

文件,在这种情况下。更改为项目似乎没有帮助。 – Stu

回答

2

事实证明在C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE文件夹中有一个旧版本的资源DLL。删除它和它的PDB解决了这个问题。

+0

SIR,您拯救了我的生活 –

+0

Me:将dll复制到所有地方,确保最新版本无处不在。 VS:你试图加载一个DLL?没有GAC?没问题,我有一个6个月的版本躺在你从未听说过的文件夹中。 –

+0

@PeterSchneider:那不是Visual Studio,那是Windows。如果你有一个坐在vshost旁边的版本。exe,这是一个采取的。 – Stu

1

原因问题:

项目是引用或者是类库项目或与.pdb可用的.dll。当调试器启动正在被选中的引用的.dll的另一个版本时。可能的解决方案,因为我也经历过一次,

我不喜欢这样

    VS下
  • - >工具/选项/调试/符号您清除缓存。 (缓存在这个目录行中的符号)
  • 如果你用你的dll的PDB,你可以复制到dll的位置。

可能会对你有帮助。

+0

将它们复制到哪里? PDB已经存在于bin文件夹中。即使我只设置了加载选定的符号,也没有任何变化。 – Stu

+0

您将pdb和dll添加到工作目录中,并尝试重建它。 –

+0

通过工作目录,你的意思是devenv.exe文件夹? – Stu

1

我有同样的问题。我发现,我有这个文件夹上的旧Dll。

C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE文件夹。

Soo删除它们,它应该可以解决问题。

+0

是的,谢谢,这就是我所说的:-) – Stu