【问题标题】:Use a Web Deployment Package or NuGet package as build artifact in Visual Studio Team Services在 Visual Studio Team Services 中使用 Web 部署包或 NuGet 包作为构建工件
【发布时间】:2017-10-31 13:36:42
【问题描述】:

我正在使用 Visual Studio Team Services 进行 ASP .NET Core 项目的持续集成和持续部署。在 VSTS 中,当我们创建构建定义时,我们需要提供一个存储库链接,VSTS 将从该链接获取代码然后构建它,我们可以在 VSTS 发布定义中使用构建工件。

我不想将我的存储库与 VSTS 构建定义链接。相反,我希望能够为我的项目生成 Web 部署包或 NuGet 包(即使我必须在 VSTS 之外进行,我也不介意),然后在我的发布定义中使用该包作为构建工件。

这可能吗?如果是,那么我该如何实现呢?

谢谢

【问题讨论】:

    标签: asp.net-core continuous-integration nuget azure-devops continuous-deployment


    【解决方案1】:

    您可以将包管理提要添加为发布工件。选择工件源时,将下拉列表从 Build 更改为 Package Management

    但是,您仍然需要先将 NuGet 包发布到源。

    【讨论】:

    • 在将 NuGet 包发布到提要并将其用作构建工件后,我在部署 IIS 网站/应用程序阶段收到此错误:##[error]Error: No package found with specified pattern。我不确定我应该在“包或文件夹”字段中输入什么。我试过这个: $(System.DefaultWorkingDirectory)/**/*.nupkg 但得到同样的错误
    • @FarooqHanif Web Deploy 包是 zip 文件,但 nuget 包文件是 .nupkg。 (你可以将web deploy包文件包含在一个nuget包中,然后解压nuget包文件,但这是不好的方式)
    【解决方案2】:

    首先,Release中有很多artifact的源类型,正如Daniel所说,你可以选择Package Management作为release artifact,但是你需要先将包push到feed中。

    使用Build artifact,需要通过Build生成,并且需要指定源(Get sources)。

    其次,您可以不链接发布定义中的任何工件,并通过相关任务(例如复制)从共享文件夹、其他机器或其他方式(例如 FTP 服务器)下载/复制 Web 部署包或 NuGet 包文件、Windows 机器文件复制、PowerShell(下载文件编程)等……

    【讨论】:

    • 如何使用 Web 部署包作为构建工件?
    • @FarooqHanif 关于构建工件,您需要通过构建来完成(发布构建工件任务)。
    • 但是如何配置 VSTS 以使用存储在我计算机中的文件夹。例如,对于 Nuget 包,我们从市场安装包管理,然后在发布工件中获得一个标记为“包”的选项。使用 Web 部署包作为发布工件的先决条件是什么?
    • @FarooqHanif 不指定Release artifact,如果web部署包在共享文件夹中并且可以从代理机器访问,你可以在Deploy IIS APP任务中指定UNC路径。对于其他方式,如FTP、其他机器,您可以添加任务下载到代理机器并在任务中使用。
    • 我会试试的。感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 2017-12-14
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    相关资源
    最近更新 更多