2010-02-15 34 views
7

有一个伟大的图书馆,我发现here。它是在Windows Forms中完成的AeroWizard,它优雅地处理Aero Basic。真棒是它应该有设计师的支持。当我试图在窗体设计的样品中打开任何WizardPages的,我得到这个错误:有没有办法在设计器中使用自定义控件并避免使用GAC?

Could not find type 'Aero.Controls.MainInstructionsLabel'. Please make sure that the assembly that contains this type is referenced. If this type is a part of your development project, make sure that the project has been successfully built using settings for your current platform or Any CPU.

图书馆是我Aero.ControlsAero.Wizard下项目引用的,所以我真的不知道出了什么问题。

我需要GAC注册程序集以获得设计人员支持吗?

编辑: 我只是反射检查,这里是引用

Aero.Controls
的mscorlib
系统
System.Drawing中
System.Windows.Forms的
user32.dll中

Aero.Wizard
mscorlib
个系统
System.Drawing中
System.Windows.Forms的
dwmapi.dll文件
GDI32.DLL
user32.dll中
的uxtheme.dll

除了本机DLL没有涉及我,但我不看不到这些会如何阻止表单在设计器中呈现。

下面是来自设计师的屏幕截图: alt text http://www.ceasetopanic.com/wp-content/uploads/2010/02/compile-error.jpg

回答

3

只要使用它的项目引用了DLL,Visual Studio应该没有问题找到控件并加载它。您可能想要尝试构建项目,然后关闭并重新打开Visual Studio。该组件不需要在GAC中。

您也可以尝试在Reflector中打开程序集以查看它是否引用了您没有的其他程序集。如果Aero.Controls引用另一个未引用的程序集,并且Visual Studio在探测时无法找到它,则会看到这种错误,并且对上面提到的程序集进行GAC处理并不能解决此问题。

+1

这听起来像是另一个引用程序集未找到的问题。 – kyoryu 2010-02-15 04:31:14

+0

原来程序集已签名,我的lib文件夹中缺少“snk”文件,我从源文件复制过来,现在设计器可以加载jsut。 – Chris 2010-02-15 06:25:22

1

的Visual Studio需要能够找到他们。通常这意味着GAC,但是您可以使用我使用here on my blog欺骗应用程序来寻找别处。我用它来愚弄Outlook在写插件时找到我们的dll。就我个人而言,我认为GAC在维护方面可能不会很头疼。

相关问题