为.Net核心库创建nuget包

为.Net核心库创建nuget包,nuget,nuget-package,.net-core,Nuget,Nuget Package,.net Core,我有一个.Net核心库项目,我想与所有其他项目共享。这些其他项目是在Classic 4.6.2和ASP.NET核心中开发的。我想使用Nuget软件包共享它。由于包需要是私人的,我将在我们的服务器上托管它。我试图发布的.net核心库项目具有以下project.json { "version": "1.0.0-*", "dependencies": { "NETStandard.Library": &q

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

{
  "version": "1.0.0-*",

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

  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  }
}
我按照这些准则[此处][1]创建了一个包

  • 使用
    nuget spec
    命令创建.nuspec包清单文件
  • 根据建议更新了nuspec文件
  • 尝试使用命令
    numget pack MyProject.xproj创建包
    出错
  • 请指定要使用的nuspec或项目文件

  • 看起来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”文件夹中 被引用


    我已经在[here][2]和[here][3]上发布了很多帖子,但这并不能解决我的问题

    如果您必须使用自己的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
    
    对于(\*.nupkg)中的%%I,执行nuget.exe推送“%%I”-源http:///api/v2/package?replace=true
    
    请注意,通过在末尾添加replace查询字符串并更改nuget配置以允许替换,您不必经历所有的恢复过程

    或者,您也可以使用私人订阅源:

  • 创建一个您希望本地包驻留的文件夹
  • 将nuget配置文件添加到解决方案的根目录中,以指定专用提要位置
  • 然后使用类似的push命令
  • 如果专用源不可见,请重新启动Visual Studio

  • 如果您必须使用自己的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
    
    对于(\*.nupkg)中的%%I,执行nuget.exe推送“%%I”-源http:///api/v2/package?replace=true
    
    请注意,通过在末尾添加replace查询字符串并更改nuget配置以允许替换,您不必经历所有的恢复过程

    或者,您也可以使用私人订阅源:

  • 创建一个您希望本地包驻留的文件夹
  • 将nuget配置文件添加到解决方案的根目录中,以指定专用提要位置
  • 然后使用类似的push命令
  • 如果专用源不可见,请重新启动Visual Studio

  • 您是否尝试过使用
    dotnet pack
    ?@Thomas是的,我使用过,它成功地创建了包。然而,我在私有服务器上使用这里的方法托管包。当我将
    nupkg
    文件添加到packages文件夹并构建解决方案时,它没有像前面提到的那样创建包。。。我想你的打包不是你的问题。@LP13看起来你引用的链接([1]…[3])没有问题。你是否尝试过使用
    dotnet pack
    ?@Thomas是的,我使用过,它成功创建了打包。然而,我在私有服务器上使用这里的方法托管包。当我将
    nupkg
    文件添加到packages文件夹并构建解决方案时,它没有像前面提到的那样创建包。。。我想你的包装不是你的问题。@LP13看起来你引用的链接([1]…[3])不见了