我最近在VS2010,C#和.Net 4上遇到问题,无法在引用的程序集中使用命名空间(称为AssemblyA)。它与问题here相似。
我能够通过将AssemblyA设置为x86平台而不是Any Cpu来解决此问题。
我的问题是,为什么将平台目标更改为x86,为什么我可以在项目中使用AssemblyA中的名称空间?
我想指出的是,我能够在其他项目中引用AssemblyA,而无需更改平台目标。我所有的参考资料都是项目参考资料。
编辑:显然我弄错了。即使更改为x86,它也不起作用。任何想法可能是什么原因造成的?
更新:我所有的项目都使用完整的.NET 4配置文件。
编辑:
经过测试后,我获得了更多信息。当我在Debug / Release版本之间切换时(无论我切换的顺序如何)并在AssemblyA上进行清理,那么我可以使用命名空间没有问题。一旦我重建AssemblyA,就无法再使用名称空间。我瞄准的平台似乎并不重要。
最佳答案
您需要确保引用程序集的项目设置为“ .NET 4 Full Profile”,而不是默认的“ Client Profile”。如果您的DLL使用的是完整配置文件中的类,并且您的程序集设置为客户端配置文件,则它无法引用DLL。
因此,只需右键单击您的项目,然后单击Properties
。然后在Application
选项卡下,查看Target Framework
。确保未将其设置为.NET Framework 4 Client Profile