首页 > 解决方案 > 如何将 MSBuild 安装目录传递给 Windows 批处理命令

问题描述

我们使用 Jenkins 已经有一段时间了,主要是使用 MsBuild 插件构建 VS 解决方案。

关于这一点,我们真的不喜欢一件事——你可以在 Jenkins 中配置你想要构建的 VS 版本。这意味着如果您将项目从一个版本移动到另一个版本,则会破坏构建。

要么您更改 Jenkins 作业以使用新版本的 VS 构建,并中断构建所有旧修订版,或者您不更改并中断所有新修订版,或者您创建两个 Jenkins 作业并且必须知道使用哪个哪个版本。

所以我们想退后一步,为每个项目添加一个 compile-project.bat,让 Jenkins 简单地调用批处理文件。

但这会产生路径问题。批处理文件如何知道任何特定版本的 VS 安装在哪里?我们可以要求每个版本的 VS 始终安装在已知位置,除非我们知道这不会发生。

如果我们可以假设每个 Jenkins 主服务器和从服务器都将正确配置其 MSBuild 安装,有没有办法将这些路径传递给批处理文件?

标签: visual-studiojenkinsmsbuild

解决方案


  1. 正如 Baruch 在评论中所说,大多数时候,更高版本的msbuild可以从早期版本构建项目。

    因此,无论您的项目是否来自早期版本,您都可以在jenkins中配置更高版本的msbuild 。

  2. 你是什​​么意思“传递批处理文件的路径”?

    这样的问题

    如果是这样,您可以简单地在文件中使用%1, 并通过命令行将路径或其他参数传递给它。%2.batxxx.bat para1 para2


推荐阅读