.net-core - Azure DevOps:使用 Chocolatey 发布自包含的 .net Core 应用程序
问题描述
我需要创建一个独立的 .net 核心(在我的例子中是 3.1)应用程序并使用巧克力打包和发布,以便可以安装和使用它。
我正在使用 Azure DevOps,并且我自己有一个订阅源,我应该在其中发布巧克力包。
目标是在构建管道中执行此操作,因此,除其他任务外,我还有:
- dotnet 发布任务:创建自包含的可执行文件
- 巧克力包任务:从我创建的非常简单的 .nuspec(仅必填字段)创建 .nupkg。
我当前的问题是创建的 .nupkg 文件始终包含项目文件而不是生成的可执行文件。
为了尝试解决它,我什至使巧克力包的任务工作目录与 dotnet publish 的任务输出目录相同。
我错过了什么?还有另一种方法吗?
解决方案
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 参考以获取更多详细信息。
推荐阅读
- c - 如果用户给出“y”作为输入,C 程序需要继续循环
- arrays - 如何通过其他一维数组访问一维数组的元素?
- angular - mat-side-nav 栏不会延伸到窗口的整个宽度
- typescript - 在 VS 代码中重新索引打字稿文件不会自动运行
- javascript - jQuery - 将函数挂钩到 html 属性
- javascript - 提交 html 表单并通过电子邮件发送(PHP、AJAX、HTML)
- angular - ng serve --open 错误您可能需要适当的加载程序来处理此文件类型
- docker - Docker - 我无法在浏览器上显示我的容器
- python - 替换全局变量
- spring-boot - 在 Spring Security 中配置 antMatchers