【问题标题】:Namespace not recognized with Any Cpu任何 Cpu 都无法识别命名空间
【发布时间】:2012-10-22 19:31:17
【问题描述】:

我最近遇到了 VS2010、C# 和 .Net 4 的问题,我无法使用我引用的程序集(称为 AssemblyA)中的命名空间。类似于here的问题。

我能够通过将 AssemblyA 设置为目标 x86 平台而不是 Any Cpu 来解决问题。

我的问题是为什么将平台目标更改为 x86 允许我在项目中使用来自 AssemblyA 的命名空间?

我想指出,我能够在其他项目中引用 AssemblyA,而无需更改平台目标。此外,我所有的参考资料都是项目参考资料。

编辑:显然我弄错了。即使更改为 x86 也无法正常工作。有什么想法可能导致这种情况吗?

更新:我的所有项目都使用完整的 .NET 4 配置文件。

编辑:

在做了一些测试后,我有了更多信息。当我在调试/发布版本之间切换(与我切换的顺序无关)并在 AssemblyA 上进行清理时,我可以毫无问题地使用命名空间。一旦我重建了 AssemblyA,我就不能再使用命名空间了。我的目标平台似乎并不重要。

【问题讨论】:

  • 两个项目都使用“常规”配置文件还是其中之一是客户配置文件?
  • 此类错误最常见的错误是已经指出的不同配置文件(客户端与完整)。您的项目的命名空间和库中的类是什么?我记得以前在某些情况下遇到过问题,但我不记得确切的细节。

标签: c# .net visual-studio-2010


【解决方案1】:

您需要确保引用程序集的项目设置为“.NET 4 Full Profile”,而不是默认的“Client Profile”。如果您的 DLL 使用完整配置文件中的类并且您的程序集设置为客户端配置文件,则它无法引用 DLL。

所以只需右键单击您的项目,然后单击Properties。然后在Application 选项卡下,查看Target Framework。确保它没有设置为.NET Framework 4 Client Profile

【讨论】:

  • 我更新了我的问题。我所有的项目都使用完整的配置文件,而不是客户端。
【解决方案2】:

我不确定这里的交易是什么,但为了解决问题,我刚刚创建了一个全新的项目并复制了代码。新项目的设置与给我问题的项目相同。但是我可以在我的其他项目中引用新项目,没有任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-21
    • 2019-12-19
    • 2012-05-07
    • 2018-03-21
    • 1970-01-01
    • 2011-10-05
    • 2015-02-17
    • 2018-02-20
    相关资源
    最近更新 更多