构建面向框架3.5的C ++项目,但生成针对框架4.0的程序集

时间:2011-12-16 11:35:51

标签: msbuild tfs2010

背景

我们有一个C ++解决方案已从VS2005迁移到VS2010,其中项目文件的目标是.net框架3.5,但自从转移到VS2010后,所有项目文件都显示他们的目标是.NET框架4.0 。我已经手动更改了.vcxproj文件,以便他们使用此link上的社区内容中描述的方法定位.net框架3.5

问题

当我手动或通过自动构建构建这些项目文件时,输出程序集仍然以.net框架4.0为目标。我可以通过使用here描述的各种方法来说明这一点。我也知道在构建和运行此应用程序的安装程序时就是这种情况。一旦安装了应用程序(然后显示为服务),我尝试在目标计算机上启动该服务。如果未安装.net framework 4.0,此服务将无法启动。如果然后安装了4.0,那么服务将启动,所以这是我可以运行的另一个测试,它告诉我应用程序依赖于.net framework 4.0,它不应该。

目标

理想情况下,我需要构建此应用程序,以便输出针对.net框架3.5而不是4.0,以便它实际上按照预期运行!我已经尝试使用3.5版本的MSBuild,如针对此问题here给出的答案之一所述,但得到了与该帖子下面描述的相同的错误。

任何人都可以帮忙吗?它被证明是一种正确的痛苦,而且我一直在撞墙直到一个星期试图让它排序!

提前再次感谢

1 个答案:

答案 0 :(得分:0)

请务必按照您发布的第一个链接中提供的所有说明进行操作。

例如,

  1. 确保在构建服务器上安装了Visual Studio 2008。

  2. 确保您还将每个项目的“平台工具集”更改为v90。

  3. 验证项目的框架版本:“在解决方案资源管理器中,右键单击项目,然后单击”属性“。在”属性页“窗口的左窗格中,展开”公共属性“,然后选择”框架和参考“。新的Framework版本显示在右侧窗格的顶部。“