【问题标题】:Using MSBuild to build VS .NET projects for VS 2003, VS 2005, and VS 2010使用 MSBuild 为 VS 2003、VS 2005 和 VS 2010 构建 VS .NET 项目
【发布时间】:2011-05-13 16:51:44
【问题描述】:

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

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

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

  • 是否需要安装 VisualStudio 才能获得 msbuild.exe?如果没有,我在哪里可以找到它?我设置的另一个构建服务器安装了 VisualStudio .NET,尽管它没有在我们的构建框中使用。
  • msbuild.exe 的哪个版本适用于 .NET 框架的哪个版本以及 VisualStudio 的哪个版本?另一个构建框使用的是 3.5,这对他们来说似乎工作得很好。
  • 真的需要构建所有这些不同版本的应用程序吗?

【问题讨论】:

    标签: .net visual-studio msbuild jenkins


    【解决方案1】:

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

    【讨论】:

    • @Reed,是的,.NET SDK 确实为您提供了 MSBuild(和编译器):C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exeC:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
    • 太棒了:我们只需要安装.NET 4.0 SDK,开发者自己设置目标框架。 1)。构建 2).? 3)。利润!现在,还有一个问题:32 位和 64 位之间是否重要?
    • 如果您的程序集是“AnyCPU”(它们可能是)- 不。如果他们通过 P/Invoke 调用本机代码 - 它确实如此。
    【解决方案2】:

    您可以针对 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+。

    【讨论】:

    • 谢谢。我们可以避免安装 VisualStudio 吗?这个系统严格来说是一个在 Jenkins 下运行并进行持续构建的自动化构建服务器。没有人会在这个系统上打开 VisualStudio 来实际运行构建。哎呀,如果我们幸运的话,甚至没有人会登录到这台机器上。
    • @David:您应该也可以使用 .NET 4 SDK 来做到这一点。
    【解决方案3】:

    即使没有 MSBuild.exe,您仍然可以通过使用 devenv.exe 的命令行开关来自动化 Visual Studio 2003 的构建过程 - 请参阅 MSDN 上标题为“在命令行上构建”的文章 @ 987654321@

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 2015-08-16
      • 2010-11-09
      相关资源
      最近更新 更多