我想創建一個使用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 –