好的,我想将我的依赖项检查到源代码管理中。许多人会出于各种原因反对这一点,但这不是我在这个问题中要寻找的。p>
请接受我的要求,我希望我的依赖项在源代码管理中。
我正在使用 NuGet 包,所以我有一个 packages
我的解决方案根目录中的文件夹。包中的每个文件夹都包含 .nupkg
文件以及该包的提取内容(二进制文件、xml 等)。
自 .nupkg
file 是包的压缩内容,将它与解压后的内容一起 checkin 对我来说毫无意义。我只想检查 .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 包的解决方案?文件存在但未解压?
最佳答案
如果不想从 Internet 下载 nuget 包,只需将它们添加到名为 nuget_repo 的单独文件夹中,并在 nuget.config 文件中将此文件夹注册为 a package source .将 nuget_repo 文件夹和 nuget.config 与您的源代码一起检查到源代码管理中。
关于c# - 将 .nupkg 文件检入源代码管理 - 如何在构建时恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32773268/