【问题标题】:Azure DevOps Build Pipeline: Create NuGet Package from MsBuild.exe SolutionAzure DevOps 构建管道:从 MsBuild.exe 解决方案创建 NuGet 包
【发布时间】:2019-08-30 14:35:43
【问题描述】:

我正在尝试构建 Asp.Net 框架 461 Web 应用程序并将 dll 打包到 NuGet 包中,该包将用于在 Octopus 中进行部署。

请注意,我正在使用:

  • ADO 中的内置构建解决方案任务
  • 内置Octopus提供的Create Octopus Package任务来打包NuGet pkg

它构建了解决方案,并将工件以部署包格式与 xxx.deploy 批处理文件打包在一起。但是,当我尝试部署到服务器上时,它迫使我在我不想做的服务器上安装“Web Deploy (msdeploy.exe)”。

NuGet 包的内容如下:构建的内容嵌入在 zip 文件和额外的部署文件中。

我们的前 DevOps 之前管理过这些构建,当我将他的 NuGet 包与我的比较时,它们完全不同。在他的版本中,所有的 aspx、ascx 和 bin 文件夹都位于 NuGet 包的顶层。

我想打包我的 NuGet 包而不使用这些额外的部署文件。

我的 AzureDevOps 中的当前构建参数是

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"

我尝试将其更改为/p:WebPublishMethod=FileSystem /p:PackageAsSingleFile=false,但仍然无法实现我想要的 NuGet 包格式。

它将生成的输出生成到 -> $myproject\obj\Release\Package\PackageTmp 位置。

我想知道是否有一种方法可以在没有额外的 zip 文件的情况下生成 NuGet 包?还是我需要手动编写powershell脚本并执行Octo.exe来打包那个...\PackageTmp目录下的内容?

是否有创建 Nuget 包任务来定义我只想打包 ..\PackageTmp 目录?

【问题讨论】:

    标签: azure azure-devops nuget


    【解决方案1】:

    Azure DevOps 构建管道:从 MsBuild.exe 解决方案创建 NuGet 包

    确实,如果你只想打包..\PackageTmp文件夹中的文件,我们在使用/p:WebPublishMethod=Package时必须为创建八达通包任务的源文件过滤文件,因为没有过滤器Create Octopus Package task 的选项。

    您可以使用copy taskContents **\PackageTmp\** 来过滤PackageTmp 文件夹中的文件:

    另外,如果发布方法不是你关心的,使用/p:WebPublishMethod=FileSystem /p:PackageAsSingleFile=false应该更容易解决这个问题。

    当我使用以下参数发布 Web 应用程序时:

    /p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactstagingdirectory)\\" /p:DeployDefaultTarget=WebPublish
    

    然后使用八达通的Package Application进行打包:

    最后,我可以在PackageTmp 文件夹中获得所有文件相同的包:

    希望这会有所帮助。

    【讨论】:

    • 关键是我的构建参数中缺少/p:DeployDefaultTarget=WebPublish。它很好地隐藏在文档中,在 *.pubxml 中也找不到。因此,即使我添加了 PublishUrl=xx,由于缺少 DeployDefaultTarget,它也被忽略了
    猜你喜欢
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    • 2021-12-28
    • 2020-01-19
    • 2019-08-03
    • 2020-03-31
    • 1970-01-01
    • 2021-01-21
    相关资源
    最近更新 更多