【问题标题】:3rd Party dependencies and SVN Integration with Visual Studio Team Services第 3 方依赖项和 SVN 与 Visual Studio Team Services 的集成
【发布时间】:2018-02-03 14:15:29
【问题描述】:

我正在评估从 TeamCity 迁移到 VSTS,我的管道中有两个步骤我不确定如何在 VSTS 中进行设置。

  1. 如何在我的构建中包含第 3 方 dll? 目前我们使用的工具必须安装在开发人员的计算机上,该工具具有用于 x86 和 x64 的单独 dll。 x86 包含在项目中并且是设计人员所需要的,但 x64 是从 Program Files 文件夹中复制的,并在 Visual Studio 中使用构建后命令。为了在 TeamCity 中工作,该工具安装在服务器中,因此相同的构建后命令将 dll 复制到构建目录中,就像在任何其他开发人员计算机中一样。

    如果不包括 x64,我看不到在 VSTS 中实现此目的的方法 源代码中的 dll,由于该工具的 许可证。

  2. 如何发布到 SVN? 目前我们的二进制文件托管在 SVN 服务器中。在 TeamCity 中,我有一个 PowerShell 脚本(简而言之)更新服务器中的 SVN 本地存储库,将构建目录中的所有文件复制到 SVN 存储库并提交更改。

【问题讨论】:

    标签: winforms svn dependencies azure-devops azure-pipelines


    【解决方案1】:

    存储您的依赖项

    这里有很多选择:

    • 将它们放在 NuGet 包中并将它们存储在 VSTS 包管理中。在构建期间让您的构建恢复包。
    • 将它们放入源代码控制(SVN 或 TFVC)中,并在构建期间获取它们。
    • 将它们存储在 Azure Blob 存储中,并通过在构建开始时下载它们来按需获取它们。
    • 使用自定义构建代理(Azure VM?)并在其上安装软件和 VSTS 构建代理。
    • 将它们作为 Build Artefacts 存储在一个 Build Definition 中,并使用市场上提供的 Fetch Build Artefacts 任务获取它们。

    我不确定您面临什么样的许可问题,但如果您不允许将二进制文件放在许可机器上以外的任何地方,我希望每个问题都有相同的问题。也许供应商提供了更好的选择,或者可以被说服提供 Cloud/VM 许可选项。

    发布到 SVN

    我不明白为什么不能使用相同的 PowerShell 脚本。尽管我建议不要从构建管道中更改您的存储库。它使未来的 CI/CD 场景变得更加困难。您可以将二进制文件作为 Artefacts 附加到 VSTS 构建,这样它们也可以轻松链接到发布管道。您可能需要获取最新版本的 svn 并将其存储在某个地方才能运行您的脚本。在 Azure VM 上运行时,您只需将 SubVersion 直接安装到代理即可。

    没有可用的内置任务。

    【讨论】:

    • 这个答案很有帮助,我会尝试实现它,然后回来将其标记为答案。同时+1。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2015-07-08
    • 2012-10-25
    • 2014-02-04
    • 1970-01-01
    相关资源
    最近更新 更多