首页 > 解决方案 > Azure DevOps:使用 Chocolatey 发布自包含的 .net Core 应用程序

问题描述

我需要创建一个独立的 .net 核心(在我的例子中是 3.1)应用程序并使用巧克力打包和发布,以便可以安装和使用它。

我正在使用 Azure DevOps,并且我自己有一个订阅源,我应该在其中发布巧克力包。

目标是在构建管道中执行此操作,因此,除其他任务外,我还有:

我当前的问题是创建的 .nupkg 文件始终包含项目文件而不是生成的可执行文件。

为了尝试解决它,我什至使巧克力包的任务工作目录与 dotnet publish 的任务输出目录相同。

在此处输入图像描述

在此处输入图像描述

我错过了什么?还有另一种方法吗?

标签: .net-coreazure-devopschocolateyself-contained

解决方案


Azure DevOps:使用 Chocolatey 发布自包含的 .net Core 应用程序

这取决于您是否在文件中包含包含的可执行.nuspec文件。

如果我们在文件中包含包含的可执行文件.nuspec,chocolatey 将创建.nupkg包含包含的可执行文件,例如:

  <files>
    <file src="IngestCanonicLtesConsole\ContainedExecutable.exe" target="Tools\ContainedExecutable.exe" />
  </files>

我们可以在包中添加这个包含的可执行文件:

在此处输入图像描述

因此,如果我们只包含不带 的必填字段<files>contained executable </files>,它将不包含包含的可执行文件。

此外,我们需要在文件中包含包含的可执行文件.nuspec,我们可以将 dotnet 构建的输出更改为$(System.DefaultWorkingDirectory)\IngestCanonicLtesConsole,以便我们可以使用.nuspec文件中的相对路径。

请查看文档.nuspec 参考以获取更多详细信息。


推荐阅读