如何为 .NET Core cli 应用程序创建巧克力包?
How to create a chocolatey package for a .NET Core cli application?
我有一个用 C# 编写的非常基本的 cli 应用程序(基本上打印 "hello world"
),它使用 .net 核心 运行time.
我尝试通过以下方式制作巧克力包装:
- 运行宁
choco new hcli
- 手动修改生成的
.nuspec
文件以提供信息(版本、作者...)
- 运行宁
choco pack
这产生了一个 .nupkg
文件,当我 运行 choco install hcli.0.0.1.nupkg
我得到 ERROR: This package does not support 64 bit architecture
.
我怀疑 chocolatey 不支持基于 project.json
的项目,the documentation 没有提及任何关于 .net core 的内容。
我做错了什么?
project.json
文件:
{
"version": "0.1.0-*",
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true,
"outputName": "hcli"
},
"dependencies": {},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0"
}
},
"imports": "dnxcore50"
}
},
"runtimes": {
"win7-x64": {}
}
}
Chocolatey 在 post 时不支持 visual studio 个项目,也不支持 project.json。
修正错误
如果您没有设置或调整任何包装,您看到的是一个很常见的错误。
生成包装后,您是否检查过 tools\chocolateyInstall.ps1
的内容?我会审查和调整那些生成的自动化脚本(并审查自述文件)。
如果您不需要自动化脚本,只需删除它们并将您的二进制文件放入包中。
正如您所指出的,https://chocolatey.org/docs/create-packages
上有一篇更详细的文章
备选方案 - 使用 NuGet 打包
您始终可以使用 NuGet 生成包,然后使用 Chocolatey 使用它。只要它与 NuGet v2(当前)兼容,您就可以开始使用了。另一个方面是,如果您在 DLL 级别有依赖项,请将它们包含在打包中 - 依赖项实际上是在应用程序级别。就像对 dotnetcore
包的依赖。
我有一个用 C# 编写的非常基本的 cli 应用程序(基本上打印 "hello world"
),它使用 .net 核心 运行time.
我尝试通过以下方式制作巧克力包装:
- 运行宁
choco new hcli
- 手动修改生成的
.nuspec
文件以提供信息(版本、作者...) - 运行宁
choco pack
这产生了一个 .nupkg
文件,当我 运行 choco install hcli.0.0.1.nupkg
我得到 ERROR: This package does not support 64 bit architecture
.
我怀疑 chocolatey 不支持基于 project.json
的项目,the documentation 没有提及任何关于 .net core 的内容。
我做错了什么?
project.json
文件:
{
"version": "0.1.0-*",
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true,
"outputName": "hcli"
},
"dependencies": {},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0"
}
},
"imports": "dnxcore50"
}
},
"runtimes": {
"win7-x64": {}
}
}
Chocolatey 在 post 时不支持 visual studio 个项目,也不支持 project.json。
修正错误
如果您没有设置或调整任何包装,您看到的是一个很常见的错误。
生成包装后,您是否检查过 tools\chocolateyInstall.ps1
的内容?我会审查和调整那些生成的自动化脚本(并审查自述文件)。
如果您不需要自动化脚本,只需删除它们并将您的二进制文件放入包中。
正如您所指出的,https://chocolatey.org/docs/create-packages
上有一篇更详细的文章备选方案 - 使用 NuGet 打包
您始终可以使用 NuGet 生成包,然后使用 Chocolatey 使用它。只要它与 NuGet v2(当前)兼容,您就可以开始使用了。另一个方面是,如果您在 DLL 级别有依赖项,请将它们包含在打包中 - 依赖项实际上是在应用程序级别。就像对 dotnetcore
包的依赖。