Azure DevOps:使用 Chocolatey 发布独立的 .net Core 应用程序
Azure DevOps: publish self-contained .net Core app with Chocolatey
我需要创建一个独立的 .net 核心(在我的例子中是 3.1)应用程序并使用 chocolatey 打包和发布以便安装和使用。
我正在使用 Azure DevOps 并且有一个我自己的提要,我应该在其中发布巧克力包。
objective 是在构建管道中执行此操作,因此,除其他任务外,我还有:
- dotnet 发布任务:创建独立的可执行文件
- 巧克力包任务:从我创建的非常简单的 .nuspec(只有必填字段)创建 .nupkg。
我当前的问题是创建的 .nupkg 文件始终包含项目文件而不是生成的可执行文件。
为了尝试解决这个问题,我什至将 chocolatey pack 的任务工作目录设置为与 dotnet publish 的任务输出目录相同。
我错过了什么?还有其他方法吗?
Azure DevOps: publish self-contained .net Core app with Chocolatey
这取决于您是否在 .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 reference 了解更多详情。
经过几次测试后,我意识到巧克力包将“打包”存在于与“.nuspec”相同的文件夹中的所有文件。不确定这是因为我没有在工具上设置任何东西。
基本上,我的解决方案是将我的“.nuspec”文件复制到我的可执行文件所在的文件夹。
我需要创建一个独立的 .net 核心(在我的例子中是 3.1)应用程序并使用 chocolatey 打包和发布以便安装和使用。
我正在使用 Azure DevOps 并且有一个我自己的提要,我应该在其中发布巧克力包。
objective 是在构建管道中执行此操作,因此,除其他任务外,我还有:
- dotnet 发布任务:创建独立的可执行文件
- 巧克力包任务:从我创建的非常简单的 .nuspec(只有必填字段)创建 .nupkg。
我当前的问题是创建的 .nupkg 文件始终包含项目文件而不是生成的可执行文件。
为了尝试解决这个问题,我什至将 chocolatey pack 的任务工作目录设置为与 dotnet publish 的任务输出目录相同。
我错过了什么?还有其他方法吗?
Azure DevOps: publish self-contained .net Core app with Chocolatey
这取决于您是否在 .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 reference 了解更多详情。
经过几次测试后,我意识到巧克力包将“打包”存在于与“.nuspec”相同的文件夹中的所有文件。不确定这是因为我没有在工具上设置任何东西。
基本上,我的解决方案是将我的“.nuspec”文件复制到我的可执行文件所在的文件夹。