我有一个 dotnet core 项目,想将其打包成 snap 包。
然而“创建你的第一个 snap” 教程使用 dotnet 插件会导致以下错误:
The plugin used by part 'my-part' does not support snaps using base 'core18'
我在这里有什么选择,我是否以某种方式瞄准了错误的版本?
dotnet 插件是否过时或不受支持?
我是否应该使用不同的插件(如 dump)来使用已经构建的二进制文件?
答案1
我找到了答案,这对 dotnet core 开发人员来说是个坏消息
dotnet 插件尚未更新以使用基础“core18”
但是,如果你将基础更改为“核心”,那么插件确实可以工作,但前提是你的目标是 dotnet core 2.0 或更早版本。
遗憾的是我的项目是 dotnet core 2.1。尝试构建我的项目时出现以下问题:
The current .NET SDK does not support targeting .NET Core 2.1. Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that supports .NET Core 2.1
看过之后该插件的 snapcraft 源代码,似乎有一个隐藏的、完全没有记录的选项来指定要使用的 dotnet core 版本。对我来说,如下设置允许构建继续:
dotnet-runtime-version: 2.1.9
snapcraft 代码尝试在此 JSON 文件在版本运行时字段。
然而,解决这个问题却让我遇到了 dotnet 构建完成后出现的下一个错误:
join() argument must be str or bytes, not 'NoneType'
谷歌搜索后发现这是一个 python 错误,而不是 dotnet 构建错误
有一个预先存在的错误报告Snapcraft 在捕捉 .net core 控制台应用程序时失败。
同时,我将尝试预先构建一个独立的应用程序,并使用转储插件来进行制作。