【问题标题】:Creating nuget package for .Net Core library为 .Net Core 库创建 nuget 包
【发布时间】:2017-02-24 08:48:50
【问题描述】:

我有一个 .Net Core 库项目,我想与我们所有其他项目共享。这些其他项目是在 Classic 4.6.2 和 ASP.NET Core 中开发的。我想使用 Nuget 包分享它。由于包需要是私有的,我将把它托管在我们的服务器上。我尝试发布的 .net 核心库项目具有以下 project.json

{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.6.0"
  },

  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  }
}

我按照这些指南 [此处][1] 创建了一个包

  1. 使用nuget spec 命令创建了 .nuspec 包清单文件
  2. 根据建议更新了 nuspec 文件
  3. 尝试使用命令nuget pack MyProject.xproj 创建包 出错了

请指定要使用的 nuspec 或项目文件。

  1. 貌似nuget不识别xproj所以执行了命令nuget pack MyProject.nuspec

    收到警告

警告:发现包“MyId”有 2 个问题。

问题:lib 文件夹外的程序集。说明:组装 “bin\Debug\netstandard1.6\MyProject.dll”不在“lib”文件夹中,并且 因此安装软件包时不会将其添加为参考 进入一个项目。解决方案:如果需要,将其移动到“lib”文件夹中 被引用。

问题:lib 文件夹外的程序集。说明:组装 “bin\Release\netstandard1.6\MyProject.dll”不在“lib”文件夹中 因此安装软件包时不会将其添加为参考 进入一个项目。解决方案:如果需要,将其移动到“lib”文件夹中 被引用。

我已经看过 [这里][2] 和 [这里][3] 的 SO 帖子,但它无法解决我的问题

【问题讨论】:

  • 你试过使用dotnet pack吗?
  • @Thomas 是的,我使用了它,它成功地创建了包。但是,我使用docs.nuget.org/ndocs/hosting-packages/nuget.server 的方法在私人服务器上托管包。当我将nupkg 文件添加到包文件夹中并构建解决方案时,它没有像提到的那样创建包
  • 嗯...我猜你的包装不是你的问题。
  • @LP13 看起来您引用的链接([1] ... [3])不见了

标签: nuget nuget-package .net-core


【解决方案1】:

如果您必须使用自己的 Nuget 服务器,我建议您实际使用 nuget 实用程序将包推送到您的服务器。我通常会编写一个小批处理文件,当我明确想要部署横切关注点可移植类库的新包时,可以安排构建事件或执行该批处理文件。

批处理文件可能很简单:

FOR %%I in (<PATH_TO_YOUR_DEBUG_FOLDER>\*.nupkg) DO nuget.exe push "%%I" -Source http://<NUGET_SERVER>/api/v2/package?replace=true

请注意,通过在末尾添加替换查询字符串并更改您的 nuget 配置以允许替换,您不必经历所有痛苦来恢复内容。

或者,您也可以使用私人供稿:

  1. 创建一个您希望本地包存在的文件夹
  2. 将 nuget 配置文件添加到指定私有源位置的解决方案的根目录
  3. 然后使用类似的推送命令
  4. 如果私人提要不可见,请重新启动 Visual Studio。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 2018-09-08
    相关资源
    最近更新 更多