有没有办法在设计器中使用自定义控件并避免使用GAC?

时间:2010-02-15 04:17:45

标签: c# winforms

我找到了一个很棒的图书馆here。它是在Windows Forms中完成的AeroWizard,它优雅地处理Aero Basic。什么是令人敬畏的它应该有设计师的支持。当我尝试在表单设计器中打开示例中的任何WizardPages时,出现此错误:

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之外,没有什么比我更重要,但是我没有看到这些会阻止表单在Designer中呈现。

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

Visual Studio需要能够找到它们。通常这意味着GAC,但是您可以使用我使用here on my blog的技巧来欺骗应用程序以寻找其他地方。我用它来欺骗外观,在编写插件时找到我们的dll。我个人认为GAC在维护方面可能不那么令人头疼。

相关问题