【问题标题】:How to Dotnet Publish from VSTS with Private Linux Hosted Build Agent?如何使用私有 Linux 托管构建代理从 VSTS 进行 Dotnet 发布?
【发布时间】:2018-08-14 08:36:27
【问题描述】:

场景 -
我正在尝试在 Ubuntu ec2 实例上构建和部署基于 ASP.Net core2.0 的项目。

来自 VSTS -
我在 VSTS 帐户上创建了一个 Linux Private Build Agent。

安装 Linux 构建代理 -
我已经安装了 dotnet core 2.1.3 另外,在 ec2 上成功注册了 Linux Private Agent。

现在,
从 VSTS - 构建和发布选项卡-
构建定义我有以下任务 -

1) dotnet restore - 此任务成功执行。


2) dotnet build - 此任务成功执行。

3) dotnet test - 此任务成功执行。

4) dotnet publish - 此任务使用 .csproj 为我的所有项目创建已发布的文件。

5) 发布构建工件任务

在任务步骤 4,这意味着 dotnet 发布步骤 - 它在 Ubuntu 私有托管代理 ec2 的路径上发布已发布的文件。例如,它发布的路径可以是 -
ubuntu@ip-111-11-1-111:/agent/_work/1/a

如果您在“dotnet publish”任务中注意到,我正在指定特定的 .csproj 文件,该文件仍在 linux 构建代理上的工件“a”文件夹中,它正在发布所有源项目。
另外,请注意,我在此任务中遇到了一些错误,因此我只能发布带有此不完整输出的“a”文件夹的屏幕。
有关更多信息,我还将发布来自构建代理源“s”文件夹的详细信息的屏幕。


请告诉我,我怎样才能只从 VSTS 发布特定的项目/源文件夹?

【问题讨论】:

    标签: .net amazon-ec2 .net-core azure-devops


    【解决方案1】:

    您应该在步骤 4 中使用 publish 而不是 custom(.NET Core 任务命令选项):

    注意:您应该在 .NET Core 发布任务中取消选择“发布 Web 项目”选项。

    由于您的第 4 步发布了所有项目,原因是 publishWebProjects 选项默认设置为true,如果您在.NET Core 任务中使用自定义命令,则无法更改该选项。所以它实际上搜索**/*.csproj 模式并忽略您指定的项目。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多