如何通过代码解析NuGet存储库路径?

时间:2015-07-31 12:44:24

标签: nuget nuget-package

我正在编写一个需要执行存储在包本身中的.exe的NuGet包。

我不想使用内容(无论如何内容和脚本都会消失)

所以我希望能够找到存储包的路径。既然用户可以更改包文件夹,并且nuget.config可以存储在多个级别,我该如何可靠地做到这一点?

这里提到: http://blog.nuget.org/20150729/Introducing-nuget-uwp.html .."只需从.nuget路径中找到它..."

但是必须有一个实用程序来做对吗?也许其中一个Nuget-library可以为我解决这条路径?

1 个答案:

答案 0 :(得分:1)

没有公共API(至少是适当的支持)来做到这一点。但是你可以使用myget feed中的NuGet.Configuration - https://www.myget.org/gallery/nugetbuild

使用此API创建设置对象 -

var settings = Settings.LoadDefaultSettings(rootFolder, null, null);

请参阅 https://github.com/NuGet/NuGet3/blob/dev/src/NuGet.Configuration/Settings/Settings.cs#L114

您可能需要调整输入以使其正确,我没有在单元测试中尝试。

然后获取全局包文件夹

 var path = SettingsUtility.GetGlobalPackagesFolder(settings)

请注意,这些软件包的格式不稳定,我希望至少在解决了这个问题之后才能进行更改 - https://github.com/NuGet/Home/issues/1098

编辑 -

您现在可以从nuget.org

获取包