我想创建一个ASP.NET vNext类库的NuGet包。我怎么能一步一步做到这一点?我知道有kpm build
,但我无法找到关于在哪里下载kpm等的指南。
此外,在获取NuGet包(或DLL)之后,如何将其从本地计算机添加到我的vNext项目中?
答案 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)
如果您使用 Visual Studio 2015 RC 及更高版本:转到您的类库项目属性,请打开Build
标签并检查Produce outputs on build
选项:
将在每个项目构建的{SolutionDir}\artifacts\bin\{ProjectName}\{Configuration}
目录中创建NuGet包。
如果您使用命令行:
DNVM
和DNX
(有关说明,请参阅ASP.NET Home repo)。dnu pack
。默认情况下,NuGet包将在{ProjectDir}\bin\{Configuration}
目录中创建。要在同一解决方案的另一个项目中使用类库,请将其作为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。