我想创建一个使用NuGet包NuGet.Core的应用程序。 它有一个名为PackageBuilder的类,使它成为可能。是否有任何示例/教程/文档可用?如何使用NuGet.Core创建NuGet包?
回答
我不知道如何使用NuGet.Core构建NuGet包的任何教程或文档。相反,我会看看NuGet.exe的源代码。它有一个包命令,该命令从.nuspec文件构建一个包。使用PackageBuilder类的PackCommand class应该告诉你你需要做什么。
我在Nuget.Core中找不到PackCommand。你能帮我吗? – Rookian
PackCommand位于NuGet.exe程序集的NuGet.Commands命名空间中。 –
一个很简单的例子:
- 创建一个包含在你的包,你想要的文件的文件夹。
写一些像这样的代码:
ManifestMetadata metadata = new ManifestMetadata() { Authors = "mauvo", Version = "1.0.0.0", Id = "myPackageIdentifier", Description = "A description", }; PackageBuilder builder = new PackageBuilder(); builder.PopulateFiles("folderPath/", new[] {new ManifestFile() {Source = "**"}}); builder.Populate(metadata); using(FileStream stream = File.Open(packagePath, FileMode.OpenOrCreate)) { builder.Save(stream); }
为什么这不是被接受的答案?目前的答案似乎更像是一条评论。 – glopes
改进例如基于大卫的代码。更改:
- 除* .nuspec之外的文件夹中的所有文件都添加到包中。
定义包文件名的行。
ManifestMetadata metadata = new ManifestMetadata() { Authors = "mauvo", Version = "1.0.0.0", Id = "myPackageIdentifier", Description = "A description", }; PackageBuilder builder = new PackageBuilder(); var files = Directory.GetFiles(packagePath, "*", SearchOption.AllDirectories) .Where(f => !f.EndsWith(".nuspec")) .Select(f => new ManifestFile { Source = f, Target = f.Replace(path, "") }) .ToList(); builder.PopulateFiles("", files); builder.Populate(metadata); string packageFile = Path.Combine(packagePath, builder.GetFullName()) + ".nupkg"; using(FileStream stream = File.Open(packageFile, FileMode.OpenOrCreate)) { builder.Save(stream); }
- 1. 使用NuGet.targets创建Nuget包
- 2. 如何用nuget.core获取包的大小?
- 3. 如何使用nuget package explorer创建一个包含release和debug dll的nuget包?
- 4. 如何在VS2015中创建Nuget包?
- 5. 如何为本地C++创建nuget包
- 6. 参考非NuGet参考创建NuGet包
- 7. 如何使用Visual Studio 2017创建Nuget包
- 8. 如何手工创建Nuget包(没有Nuget.exe或Nuget Explorer)?
- 9. 从dll创建nuget包
- 10. 如何使用MassTransit.MongoDb nuget包?
- 11. 如何使用DotNet.Contracts NuGet包?
- 12. 如何使用Nuget.Core获取预发布的软件包列表?
- 13. 使用构建后操作创建nuget包
- 14. 如何为Xamarin Forms应用程序创建一个Nuget包
- 15. 从nuget包引用nuget包
- 16. 为.Net核心库创建nuget包
- 17. 创建nuget包时参考nuspec文件
- 18. 创建nuget包和安装问题
- 19. 创建NuGet包与项目referencies
- 20. 为.net框架库创建nuget包
- 21. 为框架项目创建nuget包
- 22. 为Octopus部署创建nuget包
- 23. 创建一个条件NuGet包
- 24. 为Dacpac和Powershell脚本创建Nuget包
- 25. 从Visual Studio 2013创建nuget包
- 26. 使用NuGet包构建团队城市
- 27. 如何使用私人Nuget包?
- 28. Nuget:如何使用packages.config重新创建我的软件包目录
- 29. 使用MSBuild和VS团队服务创建NuGet包
- 30. 如何从project.json构建nuget包?
这似乎唯一的文档[一个博客文章(http://blog.nuget.org/20130520/Play-with-packages.html)。这对试图使用图书馆的人来说已经不够了。 –
礼貌请求文档https://github.com/NuGet/Home/issues/2425 –