引用IBM.Data.DB2中的代码使得程序集不可用于我的其余解决方案

我有一个带有三个程序集的C#控制台应用程序: MainCommonUtilities

MainMain.cs的文件中,我有一行:

 using Utilities; 

Common程序IBM.Data.DB2.dll的目录中,我有DLL IBM.Data.DB2.dll

Utilities集中,我有一个访问所述dll的源模块。 实用程序具有对IBM.Data.DB2的引用。 在这个程序Util.cs的源文件Util.cs ,我有一行:

 using IBM.Data.DB2; 

如果在此文件的方法中,我对DB2程序集中的代码进行任何引用,如:

 DbConnection c = new DB2Connection( _connectString ); 

我收到一个错误,编译Main集,指出无法找到名称空间名称Utilities 。 无论有没有线路, Utilities编译都很好。 如果我注释掉上面这一行,那么一切都很好。

一位乐于助人的同事过来了,并在五秒钟内为我解决了这个问题。

事实certificate,默认情况下,在VS 2010中创建新的Console应用程序时,它会获得“.NET Framework 4 Client Profile”的目标框架。 将其更改为“.NET Framework 4”会使问题消失。

在VS 2013中处理类似的问题。我检查了客户端配置文件构建版本,一切看起来都很好,我终于意识到我需要右键单击References选项卡,将我已包含的项目添加到我的解决方案References中。 我这样做了,一切都点了!