命名空间无法通过Any Cpu识别

时间:2012-10-22 19:31:17

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

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

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

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

我想要注意的是,我能够在不改变平台目标的情况下在其他项目中引用AssemblyA。我的所有参考文献都是项目参考。

<编辑:编辑:显然我错了。即使更改为x86也无法正常工作。可能导致这种情况的任何想法?

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

编辑:

在做了一些测试后,我有更多的信息。当我在Debug / Release版本之间切换时(无论我切换的顺序是什么)并在AssemblyA上执行干净,那么我可以使用命名空间没问题。一旦我重建AssemblyA,我就不能再使用命名空间了。我目标的平台似乎并不重要。

2 个答案:

答案 0 :(得分:0)

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

所以只需右键单击您的项目,然后点击Properties。然后在Application标签下,查看Target Framework。确保未将其设置为.NET Framework 4 Client Profile

答案 1 :(得分:0)

我不知道这笔交易是什么,但解决方法我刚创建了一个全新的项目并复制了代码。新项目设置与给我问题的项目相同。但是我可以毫无问题地在我的其他项目中引用新项目。