检查.nupkg文件到源代码控制-如何在构建时恢复

本文关键字:构建 恢复 文件 nupkg 源代码 控制 检查 | 更新日期: 2023-09-27 18:14:31

好了,我想把我的依赖项检入到源代码管理中。许多人会以各种理由反对这一点,但这不是我在这个问题中所寻找的。

请接受我的要求,我希望我的依赖在源代码控制。

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

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

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

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

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

我很想依靠nuget.exe restore MySolution.sln,但它检测.nupkg文件,不解包它们。

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

检查.nupkg文件到源代码控制-如何在构建时恢复

如果不想从互联网上下载nuget包,只需将它们添加到一个名为nuget_repo的单独文件夹中,并在nuget中注册该文件夹。配置文件作为包源。检查nuget_repo文件夹和nuget。