2

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

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

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

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

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

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

编辑:

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

4

2 回答 2

0

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

于 2012-10-23T13:55:40.213 回答
0

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

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

于 2012-10-22T19:57:02.573 回答