我最近遇到了 VS2010、C# 和 .Net 4 的问题,我无法使用我引用的程序集(称为 AssemblyA)中的命名空间。类似问题here .
我能够通过将 AssemblyA 设置为目标 x86 平台而不是任何 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
我是一名优秀的程序员,十分优秀!