如何创建和使用ASP.NET vNext类库NuGet包?

时间:2014-10-10 21:58:00

标签: nuget-package asp.net-core dnx

我想创建一个ASP.NET vNext类库的NuGet包。我怎么能一步一步做到这一点?我知道有kpm build,但我无法找到关于在哪里下载kpm等的指南。

此外,在获取NuGet包(或DLL)之后,如何将其从本地计算机添加到我的vNext项目中?

3 个答案:

答案 0 :(得分:5)

Kpm是新KRuntime的包管理器。有关如何在开发人员计算机上安装KRuntime命令行实用程序的说明,请参见the aspnet Home repo。一旦你有kvm和KRuntime的一个版本设置你也将有kpm可用。

现在,您可以在类库项目位置上运行kpm build。输出应该是这样的:

kpm build src\ClassLibrary1\
ClassLibrary1 -> C:\Users\username\Documents\Visual Studio 14\Projects\WebApplication1\src\ClassLibrary1\bin\Debug\ClassLibrary1.1.0.0.nupkg
ClassLibrary1 -> C:\Users\username\Documents\Visual Studio 14\Projects\WebApplication1\src\ClassLibrary1\bin\Debug\ClassLibrary1.1.0.0.symbols.nupkg

Build succeeded.
    0 Warnings(s)
    0 Error(s)

Time elapsed 00:00:01.7556414

添加对类项目的引用的最简单方法是在project.json中执行此操作,假设您在同一解决方案中使用它。以下是来自Web应用程序的示例project.json,它引用了一个名为ClassLibrary1的类库。

{
    "webroot" : "wwwroot",
    "exclude": "wwwroot/**/*.*",
    "dependencies": {
        "Microsoft.AspNet.Server.IIS": "1.0.0-alpha4",
        "ClassLibrary1": ""
    },
    "frameworks" : {
        "aspnet50" : { },
        "aspnetcore50" : { }
    }
}

如果您想设置NuGet供稿,可以阅读the official NuGet documentation to see how that is done.kpm build的输出复制到您的NuGet供稿中。

注意:VS14 CTP4仅适用于KRuntime的alpha4。如果你想在没有错误的情况下使用VS14 for vNext,你需要将你的KRuntime降级到版本1.0.0-alpha4。

答案 1 :(得分:5)

从类库

创建NuGet包

如果您使用 Visual Studio 2015 RC 及更高版本:转到您的类库项目属性,请打开Build标签并检查Produce outputs on build选项:

enter image description here

将在每个项目构建的{SolutionDir}\artifacts\bin\{ProjectName}\{Configuration}目录中创建NuGet包。

如果您使用命令行

  1. 确保您安装了DNVMDNX(有关说明,请参阅ASP.NET Home repo)。
  2. 在项目目录中运行dnu pack。默认情况下,NuGet包将在{ProjectDir}\bin\{Configuration}目录中创建。
  3. 使用打包的类库

    要在同一解决方案的另一个项目中使用类库,请将其作为Visual Studio中的常用项目引用添加到dependencies中的project.json属性中:

    "dependencies": {
      "ClassLibrary1": ""
    }
    

    要在其他解决方案中使用该库,请将NuGet包发布到nuget.org或任何其他NuGet订阅源,并使用Visual Studio将其添加到您的项目中(References〜> Manage NuGet Packages...)或dependencies中的project.json属性。

答案 2 :(得分:0)

没有足够的回复评论。

要更新到whyleee的答案,根据2016年8月8日发布的migration docs,作为DNX工具集一部分的工具已被dotnet CLI工具取代。

因此,dnu pack变为dotnet pack并默认在bin / [Configuration]目录中创建nuget和symbols包。对于大多数命令,您几乎用dnu替换dotnet

要在本地添加nuget包,请参阅此answer