所以我正在开发一个在框架2.0下的Visual Studio 2005版本中构建的项目。现在我将项目移动到版本下的visual studio 2010 sp1的新版本,并开始意识到他们正在抛出这些依赖的错误和警告,例如
Warning 1 could not be resolved because it has a dependency on "System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which is not in the currently targeted framework ".NETFramework,Version=v4.0,Profile=Client".
带给我的结果是应用程序没有读取我添加的引用,而是更改了框架。 .Net framework 4.0
问题解决了。测试我将它们更改为.net framework 4.0 client profile
,我意识到构建错误和警告再次出现。
现在我的问题是为什么设置.net 4.0
而不是client profile
?我需要一个很好的解释,因为我不是这方面的专家。
答案 0 :(得分:11)
客户端配置文件仅包含整个.NET框架的一个子集,这个子集应该足以制作桌面应用程序,同时可以更轻松地使用您的应用程序重新分发.NET。
如a blog post introducing the Client Profile中所述,客户端配置文件中不包含Oracle客户端功能。这可能是因为Oracle Client is deprecated as of .NET 4(引入客户端配置文件的版本相同),您应该逐步完全使用它。 (无论如何,它也可能不适合包含在客户档案中。)
如果您需要从应用程序连接到Oracle,您应该定位完整的.NET框架,或者最好使用第三方驱动程序库 - 可能是由Oracle开发的,而不是Microsoft开发的 - 这将保持不变 - 至今。 (InfoQ article about the deprecation列出了几种替代方案。)
答案 1 :(得分:9)
转到项目属性页面并将目标框架更改为.NET Framework 4
然后它应该可以工作!客户端配置文件适用于“小型”应用程序,不会安装所有程序集。
答案 2 :(得分:2)
.NET客户端配置文件是.NET完整安装的一个子集,仅包含框架的“客户端”。服务器功能(如ASP.NET)不存在。这样做的目的是减少.NET Framework的大小和要求。
或来自MSDN:
.NET Framework 4 Client Profile是.NET Framework 4的一个子集,它针对客户端应用程序进行了优化。它为大多数客户端应用程序提供功能,包括Windows Presentation Foundation(WPF),Windows窗体,Windows Communication Foundation(WCF)和ClickOnce功能。这样可以为面向.NET Framework 4 Client Profile的应用程序实现更快的部署和更小的安装包。
现在,您无法使用客户端配置文件的原因是因为.NET Oracle Provider需要超出客户端配置文件提供的程序集,因此您的应用程序无法使用客户端配置文件。