visual-studio - 如何将 MSBuild 安装目录传递给 Windows 批处理命令
问题描述
我们使用 Jenkins 已经有一段时间了,主要是使用 MsBuild 插件构建 VS 解决方案。
关于这一点,我们真的不喜欢一件事——你可以在 Jenkins 中配置你想要构建的 VS 版本。这意味着如果您将项目从一个版本移动到另一个版本,则会破坏构建。
要么您更改 Jenkins 作业以使用新版本的 VS 构建,并中断构建所有旧修订版,或者您不更改并中断所有新修订版,或者您创建两个 Jenkins 作业并且必须知道使用哪个哪个版本。
所以我们想退后一步,为每个项目添加一个 compile-project.bat,让 Jenkins 简单地调用批处理文件。
但这会产生路径问题。批处理文件如何知道任何特定版本的 VS 安装在哪里?我们可以要求每个版本的 VS 始终安装在已知位置,除非我们知道这不会发生。
如果我们可以假设每个 Jenkins 主服务器和从服务器都将正确配置其 MSBuild 安装,有没有办法将这些路径传递给批处理文件?
解决方案
正如 Baruch 在评论中所说,大多数时候,更高版本的msbuild可以从早期版本构建项目。
因此,无论您的项目是否来自早期版本,您都可以在jenkins中配置更高版本的msbuild 。
你是什么意思“传递批处理文件的路径”?
像这样的问题?
如果是这样,您可以简单地在文件中使用
%1
, 并通过命令行将路径或其他参数传递给它。%2
.bat
xxx.bat para1 para2
推荐阅读
- java - Matlab 调用 Java 8 `java.time` 类
- javascript - 如果最近的 href 有某个类,则删除 Jquery 中的元素
- python - 自定义异常的单元测试(链式异常 python 3)
- html - 在卡片中添加折叠页脚(引导程序)
- regex - 如何正则表达式匹配所有情况
- firebase - Firebase BigQuery 数据范围
- enums - Rust proc_macro_derive (with syn crate) 生成用于匹配的枚举变体
- android - 使用 PackageManager 时如何传递特定链接?
- python - 查找给定字符串中最少字符数的 Python 代码
- google-cloud-firestore - Angular Cloud Firestore 根据登录用户获取数据