我最近遇到了VS2010,C#和.Net 4的问题,我无法使用引用程序集中的命名空间(称之为AssemblyA)。它类似于问题here。
我能够通过将AssemblyA设置为目标x86平台而不是Any Cpu来解决问题。
我的问题是为什么将平台目标更改为x86允许我在我的项目中使用AssemblyA中的命名空间?
我想要注意的是,我能够在不改变平台目标的情况下在其他项目中引用AssemblyA。我的所有参考文献都是项目参考。
<编辑:编辑:显然我错了。即使更改为x86也无法正常工作。可能导致这种情况的任何想法?更新:我的所有项目都使用完整的.NET 4配置文件。
在做了一些测试后,我有更多的信息。当我在Debug / Release版本之间切换时(无论我切换的顺序是什么)并在AssemblyA上执行干净,那么我可以使用命名空间没问题。一旦我重建AssemblyA,我就不能再使用命名空间了。我目标的平台似乎并不重要。
答案 0 :(得分:0)
您需要确保将引用程序集的项目设置为“.NET 4 Full Profile”而不是默认的“Client Profile”。如果您的DLL使用完整配置文件中的类,并且您的程序集设置为客户端配置文件,则它无法引用该DLL。
所以只需右键单击您的项目,然后点击Properties
。然后在Application
标签下,查看Target Framework
。确保未将其设置为.NET Framework 4 Client Profile
答案 1 :(得分:0)
我不知道这笔交易是什么,但解决方法我刚创建了一个全新的项目并复制了代码。新项目设置与给我问题的项目相同。但是我可以毫无问题地在我的其他项目中引用新项目。