【问题标题】:NuGet Update on build (VS2017 Pro)构建时的 NuGet 更新(VS2017 Pro)
【发布时间】:2018-06-06 08:17:32
【问题描述】:

我目前正在寻找一种在 Visual Studio 2017 中触发 NuGet 更新的方法。

我正在使用 VS2017 Pro。我的代码库由多个解决方案组成,这些解决方案将代码分成层(数据访问/业务逻辑/用户界面/应用程序/等)。构建解决方案时,它会生成一个或多个 NuGet 包,然后由“食物链”上游的项目使用。 在我们的构建服务器上自动更新 NuGet 是微不足道的,但是如果我们可以配置我们的开发环境,使其始终尝试在构建时获取最新的 NuGet 包,类似于包还原的工作方式,那就太好了。

我遇到了很多关于旧版本 Visual Studio/NuGet 的信息,包括更新自动生成的 nuget.targets 文件,但是这些不是在 VS2017 中使用 NuGet 包管理器 4.6.x 创建的(除非我我做错了什么!)

任何帮助或建议将不胜感激。

【问题讨论】:

  • 你不能在预编译部分运行一些update-pakages 命令吗?
  • 预构建事件为时已晚 :(
  • 你能解释一下原因吗?
  • 你的项目管理风格是什么?包.config?或者您是否使用 PackageReference 元素在 csproj 中管理包?

标签: visual-studio-2017 nuget


【解决方案1】:

构建时的 NuGet 更新 (VS2017 Pro)

如果预构建事件对您来说太迟了,您可以尝试使用预构建事件/构建后事件将新项目添加到解决方案中以更新其他项目/解决方案使用的 nuget 包:

<YourNuGetPath>\nuget.exe update "<YourSolutionPath>\xxxx.sln"

或者

<YourNuGetPath>\nuget.exe update "<ThePackages.configFilePath>\Packages.config"

在这种情况下,您可以构建这个新的添加项目,以使用 nuget 包为这些项目/解决方案获取最新的 NuGet 包。

另外,如果你不想在那些消费 nuget 包项目之前构建这个项目,你可以让那些项目引用这个新的添加项目,Visual Studio 会在构建那些消费 nuget 包项目之前构建它。

希望这会有所帮助。

【讨论】:

  • 我会试一试,看看效果如何。感谢您的反馈:)
  • @Danielle Summers,你觉得这个问题怎么样?能否分享一下最新信息?
  • 抱歉,工作把我拖到了另一个项目上。一旦有机会,我会试一试,如果证明合适,我会将此标记为答案。
  • 再次抱歉耽搁了这么久。可悲的是,这并没有像我希望的那样工作。创建一个只有预构建事件的空项目来更新解决方案。如果自己构建,它确实会更新解决方案,但是当配置为首先构建时(通过项目依赖项),它需要时间来完成并且构建不会等待它 - 因此在更新之前构建了一个或多个项目完成对包源的索引。 :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-25
  • 2018-04-14
  • 1970-01-01
  • 2021-01-31
相关资源
最近更新 更多