【问题标题】:dotnet publish only one project from the solution in VSTSdotnet 在 VSTS 中仅发布解决方案中的一个项目
【发布时间】:2018-09-03 06:25:46
【问题描述】:

我们正在尝试使用 .NET Core 任务从 VSTS 中的 Visual Studio 解决方案构建一个项目。我们能够“dotnet 构建”该项目。但是当我们尝试“dotnet publish”时,它会尝试从解决方案中发布所有项目。即使我们使用“dotnet custom”,它也会尝试发布所有项目。

有没有办法使用 .NET Core 任务仅发布一个或已构建的项目?还是我们应该运行自定义命令行任务?

原因是我们有一个无法构建的项目,我们不需要/不想发布它。所以我们想构建和发布一个项目,而不是所有项目。

【问题讨论】:

  • 你能在这里显示构建日志吗?

标签: c# .net-core azure-devops


【解决方案1】:

您可以使用dotnet publish <Path to .csproj>。这将仅构建和发布指定的项目和它所依赖的项目。

要使用“发布”命令在“.Net Core”任务中指定项目,您必须取消选中“发布 Web 项目”。

【讨论】:

  • 最后,我这样做了,但使用的是命令行任务而不是 .NET Core 任务。但我的问题是我可以使用 .NET Core 任务来执行此操作吗?
  • 在使用命令“发布”的“.Net Core”任务中,如果您删除复选标记“发布 Web 项目”,您可以指定项目的路径。 Microsoft 有关于 VSTS 任务的基本文档:docs.microsoft.com/en-us/vsts/pipelines/tasks/build/…
  • 实际上这就是答案。因此,如果您可以“升级”您的评论作为答案,我可以批准它。
【解决方案2】:

另一种解决方案是在 csproj 中设置 IsPublishable

我通常在它是一个单元测试项目的情况下这样做,或者如果你为解决方案文件运行 dotnet publish 则不需要发布。

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <IsPackable>false</IsPackable>

    <IsPublishable>false</IsPublishable >

    <Configurations>prod;stage;dev</Configurations>
    <Platforms>AnyCPU</Platforms>
  </PropertyGroup>

【讨论】:

  • 您是否在任何地方找到此文档?
  • 是的,在github
  • 谢谢。不完全是文档,但它必须这样做。
  • 这是实现这一目标的最简单方法。谢谢!
【解决方案3】:

这取决于每个项目的项目依赖关系。

也就是说,有一些配置说“需要先构建哪个项目,才能让你的目标项目成功构建。”

如果您使用的是 Visual Studio,请右键单击解决方案并单击“属性”。 在此示例中,我的目标运行是 TestAngular.Web.Host,为了构建该项目,需要先构建 TestAngular.Web.Core

如果您使用不同的 IDE,只需找到您的目录,在我的情况下它是 src\TestAngular.Web.Host 并修改 TestAngular.Web.Host.csproj 文件

<Project Sdk="Microsoft.NET.Sdk.Web">
...
<ItemGroup>
    <ProjectReference Include="..\TestAngular.Web.Core\TestAngular.Web.Core.csproj" />
  </ItemGroup>
...
</Project Sdk="Microsoft.NET.Sdk.Web">

使用相同的语法添加或删除此处不需要的项目

【讨论】:

  • 首先这看起来很有希望,但不幸的是,这不是答案。不存在强制构建我们不想构建的项目的依赖项。可能是 .NET Core 任务的特性,你不能定义你想要发布的 csproj。
【解决方案4】:

如果您取消选中“发布 Web 项目”,您将看到一个允许您输入要定位的项目 (csproj) 的字段。

【讨论】:

    【解决方案5】:

    可能迟到了,但为了控制要发布的项目,您可以取消链接“项目路径”变量(通过点击“链接设置”)。这使得该字段可编辑,您可以指定所需的 .csproj。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多