Answers:
在“框架和引用”对话框中按F1时,将显示以下内容:
默认情况下,对于新项目,目标框架设置为.NET Framework4。IDE不支持修改目标框架,但是您可以手动更改它。在项目文件(.vcxproj)中,默认的目标框架由v4.0属性元素表示。要更改目标框架,请卸载项目,使用文本编辑器打开项目文件,然后将property元素的值从v4.0更改为服务器上安装的另一个版本。例如,如果指定v3.5(代表.NET Framework v3.5),则必须安装Visual Studio 2008 SP1。保存并关闭文件,重新加载项目,并验证目标框架是否显示在属性页中。*
在转换后的项目中这并不是十分准确,您必须<TargetFrameworkVersion>
自己添加元素。将其放入标记为“ Globals”的PropertyGroup中:
<PropertyGroup Label="Globals">
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<others...>
</PropertyGroup>
使用VS2012及更高版本时的情况有所不同,VS2012是在“常规”属性页面中获得“平台工具集”设置的VS的第一个版本。然后,您必须选择“ v90”以获取针对3.5的正确构建。但是,它很笨拙,您必须在计算机上安装所有VS的中间版本,才能使用该选择。
为什么需要安装VS2008本身需要一个解释。核心问题是C运行时库(msvcrt100.dll及更高版本)包含.NET代码以支持托管代码执行。关键的细节是模块初始化程序,它确保在使用C ++ / CLI代码的程序中正确初始化CRT。该代码始终以.NET 4为目标,并且由于将其硬烘焙到msvcrt100.dll(及更高版本)中,因此您始终对v4.0.30319运行时有严格的依赖。当您使用旧的C运行时msvcrt90.dll时,您只能具有纯v2.0.50727依赖性。使用VS2008的编译器的#include文件时,只能确保您具有msvcrt90.dll依赖性。
很难的事实是,很快就要迁移到.NET 4了,否则,您将遇到诸如此类的构建问题。几乎没有实际的障碍,.NET 4可以免费在您想象的所有目标上免费使用。克服与迁移到更高的运行时版本相关的FUD通常只是真正的问题。没有理由害怕和怀疑,它是稳定的。
是的,即使对于托管的C ++项目,也可以更改目标:
更改用于C ++ / CLI的目标.NET Framework(VS 2010)更改用于C ++ / CLI项目的.NET Framework版本(VS 2010)
在解决方案资源管理器中右键单击项目,然后单击“卸载项目”。在解决方案资源管理器中右键单击卸载的项目,然后选择“编辑”。
<projectname>.vcxproj
在项目XML文件中找到节点<PropertyGroup Label="Globals">
在该节点中找到节点<TargetFrameworkVersion>
(如果找不到该节点,则将其添加)。目标框架。它可以是v2.0,v3.0,v3.5或v4.0保存vcxproj文件并关闭它,然后在Solution Explorer中右键单击已卸载的项目,然后单击Reload Project Example。<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
注意:这些步骤仅适用于Visual Studio 2010,因为它使用C ++项目文件的新格式。
由匿名用户:
(以我是新用户的身份进行编辑,因此无法响应,任何人都可以随意提交以下内容)将工具集更改为v100实际上会导致VS2010以.NET 4.0为目标,即使该工具集仍会在目标网站中显示为3.5。项目属性。VS2010应该对此发出真正的警告,因为尽管您可以使用v100工具集来定位.NET 3.5,但目前看来还是一样。