如何创建和使用ASP.NET vNext的类库NuGet包?
如何创建和使用ASP.NET vNext的类库NuGet包?
我想创建一个ASP.NET vNext类库的NuGet包。我该如何一步一步地操作呢?我知道有kpm build
,但我找不到有关从哪里下载kpm的指南等等。
而且,在获取到它的NuGet包(或DLL)之后,我该如何将其从本地机器添加到我的vNext项目中?
从类库创建NuGet包
如果您使用的是Visual Studio 2015 RC或更高版本: 进入您的类库项目属性,打开 生成
选项卡,勾选 生成输出文件
选项:
每次构建项目时NuGet包就会创建在 {SolutionDir}\artifacts\bin\{ProjectName}\{Configuration}
目录下。
如果您使用命令行:
- 确保您已安装了
DNVM
和DNX
(请查看 ASP.NET Home repo 的说明)。 - 在项目目录中运行
dnu pack
。NuGet包默认会创建在{ProjectDir}\bin\{Configuration}
目录下。
使用打包后的类库
要在同一解决方案的其他项目中使用类库,可以像在Visual Studio中添加常规项目引用或在 project.json
中的 dependencies
属性中添加类库引用:
"dependencies": { "ClassLibrary1": "" }
要在其他解决方案中使用库,请将NuGet包发布到 nuget.org 或任何其他NuGet feed,并使用Visual Studio的 引用
菜单下的 管理NuGet程序包...
或在 project.json
中的 dependencies
属性中添加它。
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 feed,您可以阅读官方NuGet文档以了解如何完成此操作。将kpm build
的输出复制到您的NuGet feed中。
注意:VS14 CTP4只与KRuntime的alpha4版本兼容。如果您想在vNext中使用VS14而不会出现错误,您需要将KRuntime降级到1.0.0-alpha4版本。