装配加载问题"无法从装配ABC加载XYZ类型

时间:2016-04-11 18:03:37

标签: c# .net loading

鉴于:

示例按解决方案中的项目命名空间。

  1. BaseNameSpace
  2. BaseNameSpace.Reports
  3. 我意识到我需要"崩溃" Reports命名空间并将其放入基础。我仍然希望该项目成为它自己的项目。上面的项目2的属性如下所示:

    enter image description here

    如果将这些值更改为:

    enter image description here

    尝试在其他项目中使用报告,例如

    1. BaseNameSpace.AnotherProjectRoot
    2. 在标题中发出消息。现在这里有趣的是,intellisense找到了所需的类,但运行时加载器并没有....

      同一解决方案中的多个项目是否包含相同的命名空间?它几乎就像加载器在一个项目中找到基本命名空间一样,但不会使用另一个项目(名称不同)但名称空间相同...

1 个答案:

答案 0 :(得分:0)

<强>问题

尝试更改命名空间导致编译错误是引用错误。

<强>解决方案

右键单击每个项目,然后选择“属性”。单击顶部的“应用程序”按钮,确保每个项目的目标框架相同。

<强>症状

遇到此问题时的症状是:1)Intellisense可以轻松找到其他项目中的方法2)右键单击另一个项目中引用的方法并选择Go to Definition可以正常工作。 3)编译解决方案将显示引用错误,说明在程序集中找不到命名空间xyz。 4)查看每个项目中的参考文献将显示黄色警告标志,即使其他参考文献是“通过解决方案”。您尝试通过重新指向解决方案中的其他项目来纠正,并且黄色标记仍然存在。

根本原因

我们只是在之前没有这些错误的项目中更改了名称空间名称,因此我们不知道。我们没有改变.NET版本!