【问题标题】:How to create a chocolatey package for a .NET Core cli application?如何为 .NET Core cli 应用程序创建巧克力包?
【发布时间】:2017-01-30 15:50:10
【问题描述】:

我有一个用 C# 编写的非常基本的 cli 应用程序(基本上打印 "hello world")并使用 .net 核心运行时。

我尝试通过以下方式创建巧克力包装:

  1. 正在运行choco new hcli
  2. 手动修改生成的.nuspec 文件以提供信息(版本、作者...)
  3. 运行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 核心的内容。

我做错了什么?

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": {}
  }
}

【问题讨论】:

    标签: c# windows-10 .net-core chocolatey


    【解决方案1】:

    在撰写本文时,Chocolatey 不支持 Visual Studio 项目或 project.json。

    修复错误

    如果您没有设置或调整任何包装,您看到的是一个非常常见的错误。

    您在生成包装后查看过tools\chocolateyInstall.ps1 的内容吗?我会查看并调整生成的自动化脚本(并查看自述文件)。

    如果您不需要自动化脚本,只需删除它们并将您的二进制文件放在包中即可。

    正如您所指出的,https://chocolatey.org/docs/create-packages 有一篇更详尽的文章

    替代选项 - 使用 NuGet 打包

    您始终可以使用 NuGet 生成包,然后使用 Chocolatey 使用它。只要它与 NuGet v2(当前)兼容,就可以使用。另一个方面是,如果您在 DLL 级别有依赖项,请将它们包含在打包中 - 依赖项实际上是在应用程序级别。就像对 dotnetcore 包的依赖一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-01
      相关资源
      最近更新 更多