使用MSBuild为VS 2003,VS 2005和VS 2010构建VS .NET项目

时间:2011-05-13 16:51:45

标签: .net visual-studio msbuild jenkins

我是Unix CM的极客,对Microsoft .NET开发知之甚少。我们现在有一个我们需要构建的VisualStudio .NET项目。我想使用Jenkins来进行构建。我使用Jenkins和Jenkins调用`msbuild.exe(版本3.5)在另一个构建服务器上设置了一个以前的VS项目。

目前,他们在本地桌面上构建这个项目(哦,为什么MS极客认为这是可以接受的?)。他们做了三个版本:一个在VS 2003中,一个在VS 2008中,一个在VS 2010中。

我的想法是他们根本不明白他们在做什么,或者使用不同版本的Visual Studio来构建不同的.NET版本。我的问题:

  • 我是否需要安装VisualStudio才能获得msbuild.exe?如果没有,我在哪里可以找到它?我设置的另一个构建服务器安装了VisualStudio .NET,虽然它没有在我们的构建盒上使用。
  • 哪个版本的msbuild.exe适用于哪个版本的.NET框架以及哪个版本的VisualStudio?另一个构建框使用3.5,它似乎对它们很有效。
  • 是否真的需要构建应用程序的所有不同版本?

3 个答案:

答案 0 :(得分:1)

通过适当设置.Net 4.0 SDK,您可以使用TargetFrameworkVersion构建VS 2008和VS 2010版本。我真的希望你的意思是使用的最旧版本是VS 2005(.Net 2.0),它也可以使用这种方法进行定位 - 如果你真的使用的是VS 2003(目标是.Net 1.1) - 你运气不好,当时msbuild不存在。但是恐龙呢!

答案 1 :(得分:1)

您可以从Visual Studio 2010或msbuild定位不同的.NET框架。可以将构建项目设置为以.NET 2.0,.NET 3.5和.NET 4为目标。

话虽如此,如果它是同一个项目,那么没有真正的理由这样做。除非.NET 4版本正在添加其他功能,否则没有理由不仅仅针对.NET 2并构建单个部署,因为这可以在没有问题的情况下从.NET 3.5和.NET 4项目中使用。

我建议安装Visual Studio 2010,因为这样可以获得可以针对所有3个框架的msbuild版本。

不幸的是,如果您的目标是.NET 1.1(2003),则需要单独构建,而较新版本的Visual Studio仅支持.NET 2.0 +。

答案 2 :(得分:0)

即使没有MSBuild.exe,您仍然可以使用devenv.exe的命令行开关自动执行Visual Studio 2003的构建过程 - 请参阅位于MSDN的{在命令行上构建'的文章{ {3}}