检查.nupkg文件到源代码管理 - 如何在构建时恢复?

时间:2015-09-25 01:11:27

标签: c# .net nuget projects-and-solutions nuget-package-restore

好的,我想检查我的依赖关系到源代码控制。许多人会因各种原因反对这一点,但这不是我在这个问题上所寻求的。

请接受我的要求是我希望我的依赖项在源代码管理中。

我正在使用NuGet包,所以我的解决方案的根目录中有一个packages文件夹。包中的每个文件夹都包含.nupkg文件以及该包的提取内容(二进制文件,xml等)。

由于.nupkg文件是包的压缩内容,因此将其与解压缩的内容一起检入是没有意义的。我只想检查.nupkg文件并在构建过程中恢复它们。这就是问题所在。 NuGet在恢复时只检查是否存在.nupkg文件,如果发现已经安装了该软件包,则不会将其解压缩。

我发现解压缩这些文件的唯一方法是运行nuget.exe install并指定特定项目的packages.config文件并使用选项-OutputDirectory {solutionDir}\packages

e.g。

nuget.exe install {solutionDir}\{projectDir}\packages.config -OutputDirectory {solutionDir}\packages

但这只适用于项目级别,而不是解决方案级别。因此,我必须为解决方案中的每个项目创建一个脚本来执行此操作。

我很乐意依赖nuget.exe restore MySolution.sln,但它会检测.nupkg个文件并且不会解压缩它们。

.nupkg文件存在但是没有解压缩时,有没有人有更简单的方法来恢复解决方案的所有NuGet包?

1 个答案:

答案 0 :(得分:0)

如果不想从互联网上下载nuget软件包,只需将它们添加到名为nuget_repo的单独文件夹中,并将此文件夹作为a package source注册到nuget.config文件中。检查nuget_repo文件夹和nuget.config以及源代码控制源。