【发布时间】:2018-01-24 21:27:28
【问题描述】:
当私有代理在 VSTS 中开始构建时,它会被分配一个目录,例如C:\vstsagent_work\1\s
有没有办法将它设置为不同的路径?在其他 CI 服务器上,例如 Jenkins,我可以为作业定义自定义工作区。我正在处理一个巨大的 monorepo,并且在同一个存储库周围有几十个构建定义。在构建代理计算机上共享一个目录是有意义的(无论如何对我来说)。
对我的好处是我的构建可以使用来自上游存储库的预构建组件,如果它们已经构建的话。
感谢您的帮助
【问题讨论】:
-
自有代理还是私人代理?
-
您在 Visual Studio 2017.3+ 中查看过 Nuget
packageReference吗?这允许您设置一个仅采用最新版本的版本规范,或者允许您使用 MsBuild 属性为引用设置与您自己的项目相同的版本。 -
@jessehouwing,我正在使用私人代理。我真的不想再次走 nuget 路线。上次管理它所需的复杂性我被烧得很厉害。我想保持简单,目前的方法很简单,可惜效率低下。
-
您是否在构建期间设置程序集版本?您有一个或多个构建定义吗?每个构建定义都有自己的工作区,并从旧版本的依赖项开始。如果它是一个包含很多条件的构建定义,则应该每次都将其重定向到同一个工作区/存储库。
-
您可以关闭获取源步骤并调用
git.exe或tf.exe作为构建的第一步。这样您就可以完全控制该位置,但您必须手动操作。
标签: visual-studio msbuild azure-devops azure-pipelines