c# - 将 .nupkg 文件检入源代码管理 - 如何在构建时恢复?

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

好的,我想将我的依赖项检查到源代码管理中。许多人会出于各种原因反对这一点,但这不是我在这个问题中要寻找的。

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

我正在使用 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/

相关文章:

c# - 如何让 Swagger 显示从 API 返回的对象示例?

c# - C#中动态字符串中的变量

c# - 在 RichTextBox 中显示 NLog 跟踪

c# - 如何在 .NET 中更改 Windows 服务启动类型(安装后)?

c# - "The given path' 格式不受支持。”

msbuild - 开发时使用项目引用而不是 nuget 包?

c# - 以编程方式从 IIS 获取站点状态,返回 COM 错误

c# - 从数据库生成 POCO/DTO 的工具 (SQL Server)

recursion - 如何在 NuSpec 文件中递归地包含目录

c# - NuGet 恢复问题 : Xamarin iOS CSharp Targets was not found