我想为我的 ASP.NET vNext 类库创建一个 NuGet 包。我该怎么做,一步一步?我知道有kpm build
,但我找不到关于在哪里下载 kpm 等的指南。
此外,在获得它的 NuGet 包(或 DLL)后,如何将其从本地计算机添加到我的 vNext 项目?
我想为我的 ASP.NET vNext 类库创建一个 NuGet 包。我该怎么做,一步一步?我知道有kpm build
,但我找不到关于在哪里下载 kpm 等的指南。
此外,在获得它的 NuGet 包(或 DLL)后,如何将其从本地计算机添加到我的 vNext 项目?
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 版本。
如果您使用Visual Studio 2015 RC及更高版本:转到您的类库项目属性,打开Build
选项卡并选中Produce outputs on build
选项:
NuGet 包将{SolutionDir}\artifacts\bin\{ProjectName}\{Configuration}
在每个项目构建的目录中创建。
如果您使用命令行:
DNVM
和DNX
(请参阅ASP.NET Home repo以获取说明)。dnu pack
在项目目录中运行。{ProjectDir}\bin\{Configuration}
默认情况下,NuGet 包将在目录中创建。要在同一解决方案的另一个项目中使用类库,请将其添加为 Visual Studio 中的常规项目引用或添加到以下位置的dependencies
属性project.json
:
"dependencies": {
"ClassLibrary1": ""
}
要在其他解决方案中使用该库,请将 NuGet 包发布到nuget.org或任何其他 NuGet 源,并使用 Visual Studio ( References
~> Manage NuGet Packages...
) 将其添加到您的项目中或添加dependencies
到project.json
.
从 VS2019 开始,将需要更新项目属性/Package 选项卡,并选择“Generate NuGet package on build”。