2016-10-14 85 views
1

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

{ 
    "version": "1.0.0-*", 

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

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

我跟着这些准则[这里] [1]创建一个包

  1. 创造了.nuspec软件包清单文件中使用nuget spec命令
  2. 更新nuspec文件按照建议
  3. 试图用命令nuget pack MyProject.xproj 创建包了错误

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

  • 看起来像的NuGet不能识别xproj所以执行命令nuget pack MyProject.nuspec

    得到警告

  • 警告:发现2问题(S)包'MyId'。

    问题:在lib文件夹外装配。说明:程序集 'bin \ Debug \ netstandard1.6 \ MyProject.dll'不在'lib'文件夹中,因此在将程序包安装到项目中时不会将其作为参考添加到 中。解决方案:如果应该引用 ,则将其移动到'lib'文件夹中。

    问题:在lib文件夹外装配。说明:程序集 'bin \ Release \ netstandard1.6 \ MyProject.dll'不在'lib'文件夹中 内,因此在将程序包安装到项目中时,不会将其作为参考添加。解决方案:如果应该引用 ,则将其移动到'lib'文件夹中。

    我已经已经显得如此张贴[这里] [2]和[这里] [3],但它解决不了我的问题

    +3

    您是否尝试过使用'dotnet pack'? – Thomas

    +0

    @Thomas是的,我用它,它成功地创建了包。不过,我在私人服务器上使用这里的方法托管包https://docs.nuget.org/ndocs/hosting-packages/nuget.server。当我将'nupkg'文件添加到packages文件夹并构建解决方案时,它没有像上面提到的那样创建软件包 – LP13

    +0

    呃...我想你的包装不是你的问题。 – Thomas

    回答

    0

    如果你必须使用你自己的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配置为允许更换你do'nt必须要经过所有回归事物的痛苦。

    或者你可以只使用私人饲料:

    1. 创建希望当地套餐住
    2. 添加的NuGet配置文件到您的解决方案的根目录,指定专用饲料位置的文件夹
    3. 然后使用类似的推送命令
    4. 如果私人提要不可见,请重新启动Visual Studio。
    相关问题