8

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

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

4

4 回答 4

5

Kpm 是新 KRuntime 的包管理器。有关如何在您的开发人员机器上安装 KRuntime 命令行实用程序的说明可以在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 提要,您可以阅读官方 NuGet 文档以了解如何完成。将 的输出复制kpm build到您的 NuGet 源中。

注意:VS14 CTP4 仅适用于 KRuntime 的 alpha4。如果你想在 vNext 中使用 VS14 而不会弹出错误,你需要将你的 KRuntime 降级到 1.0.0-alpha4 版本。

于 2014-10-13T11:08:12.883 回答
5

从类库创建 NuGet 包

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

在此处输入图像描述

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

如果您使用命令行

  1. 确保您已安装DNVMDNX(请参阅ASP.NET Home repo以获取说明)。
  2. dnu pack在项目目录中运行。{ProjectDir}\bin\{Configuration}默认情况下,NuGet 包将在目录中创建。

使用打包的类库

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

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

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

于 2015-06-18T19:18:35.983 回答
0

从 VS2019 开始,将需要更新项目属性/Package 选项卡,并选择“Generate NuGet package on build”。

属性选项卡图像

于 2021-10-21T16:45:00.397 回答
0

没有足够的代表发表评论。

为了更新Whyleee 的回答,根据 2016 年 8 月 8 日发布的迁移文档,作为 DNX 工具集一部分的工具已被 dotnet CLI 工具取代。

因此,默认情况下,在 bin/[Configuration] 目录中创建并创建dnu packnugetdotnet pack和 symbols 包。您几乎可以替换dnu大多数dotnet命令。

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

于 2016-08-08T16:59:54.490 回答