【问题标题】:Custom Control missing assembly reference自定义控件缺少程序集参考
【发布时间】:2014-09-16 20:40:30
【问题描述】:

我的一个朋友创建了一个控件(多选组合框)并将其编译为 DLL。我已将 DLL 添加到我的 WPF 窗口中的引用和命名空间中:

xmlns:mc="clr-namespace:MultiSelectComboBox;assembly=MultiSelectComboBox"

使用控件时:

<mc:MultiSelectUserControl Name="mscControl" />

问题是,一旦我添加了 xaml 以使用该控件,窗口就会变灰并显示无效标记。 错误列表显示2个错误,即:

命名空间“clr-namespace:MultiSelectComboBox;assembly=MultiSelectComboBox”中不存在名称“MultiSelectUserControl”。

找不到类型“mc:MultiSelectUserControl”。确认您没有丢失程序集引用并且所有引用的程序集都已构建。

但如果我运行该应用程序,该控件将完美运行。当这种情况不断发生时,它只是非常令人沮丧地设计 GUI。我确实对此进行了研究,但没有任何帮助。

为什么会发生这种情况,我做错了什么?

【问题讨论】:

  • 尝试清理您的解决方案,重建项目并重新启动 Visual Studio。
  • 我已经这样做了好几次了。清理、重建、重新启动 VS 并创建了一个全新的项目,但还是一样
  • 解决方案是否在网络文件夹中?
  • @Calvin Smith:目前解决方案在本地驱动器上的“我的文档”中。
  • 是否有无法在 VS 设计器中执行的代码(即在MultiSelectComboBox 的构造函数中)?您必须知道 VS 以及 Blend 设计器只是您的控件的特殊运行时 - 如果您这样做,例如服务调用这些将导致异常,这将阻止设计师在设计时向您显示布局。

标签: c# wpf wpf-controls


【解决方案1】:

完全同意 feO2X : 错误背后的主要原因始终是调用任何特定服务或任何运行时函数的某些代码(在用户控件的构造函数中),

如果有,将不允许用户控件在 xaml 设计中正确加载它。 所以我建议请询问你的朋友他是否在他自己的用户控件的构造函数中进行了任何调用,那么他不应该在当前情况下这样做。他能做的是做一个额外的功能,放置所有代码(除了InitializeComponent)并在特定用户控件的加载事件中调用该特定功能,并且在功能上也完全没有问题

【讨论】:

    猜你喜欢
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 2014-02-16
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 2010-12-08
    相关资源
    最近更新 更多