0

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

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

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

  • dotnet 发布任务:创建自包含的可执行文件
  • 巧克力包任务:从我创建的非常简单的 .nuspec(仅必填字段)创建 .nupkg。

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

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

在此处输入图像描述

在此处输入图像描述

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

4

2 回答 2

0

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 参考以获取更多详细信息。

于 2020-07-22T06:52:59.583 回答
0

经过几次测试后,我意识到巧克力包将“打包”与“.nuspec”位于同一文件夹中的所有文件。不确定这是因为我没有在工具上设置任何东西。

基本上,我的解决方案是将我的“.nuspec”文件复制到我的可执行文件所在的文件夹中。

于 2020-07-22T12:05:17.723 回答