【问题标题】:Failure to build on VS Online because of Nuget, works locally由于 Nuget 无法在 VS Online 上构建,在本地工作
【发布时间】:2015-09-15 16:33:27
【问题描述】:

在 VS2015 中本地运行。一切都很好。如果我部署到 VS Online,构建会失败,因为它找不到 HTML Agility Pack,它在解决方案中作为 Nuget 包。我检查了在 VS Online 中是否勾选了 Restore NuGet Packages。

对我不做的任何事情的任何想法。

【问题讨论】:

  • 我以前见过类似的事情。检查this answer 以获得可能的解释。
  • 这就是解释,也许吧。解决方案是什么?也将 nuget 包应用到第一个项目?
  • 解决方案是重新排列repo中的文件夹布局,让所有*.csproj都放在*.sln级别下的子文件夹中。这将使该构建任务的默认逻辑按预期工作。
  • @YanSklyarenko,您是使用 VSO 中的 vNext 构建系统,还是使用 XAML 构建定义?有关差异的详细信息,请在下面查看我的答案。
  • @YanSklyarenko 这就是我所拥有的 - 一个包含 .sln 文件的文件夹和每个项目的子文件夹,在该文件夹中是一个 packages.config 文件,其中包含对 HtmlAgilityPack 的引用,这一切都很好正在开发中。

标签: tfsbuild azure-devops nuget-package-restore


【解决方案1】:

好的,我似乎找到了问题所在。这些包已被签入源代码管理。不确定他们是否应该,但我们在那里。通过从包文件夹中删除它们,它似乎从 Nuget 中恢复它们并且这次可以工作。

【讨论】:

    【解决方案2】:

    如果您在 VSO 中使用 vNext 构建系统,您只需选中构建定义中的 Restore NuGet Packages 复选框,然后选择 . sln 文件。

    如果您使用一个 XAML 构建定义,则需要遵循一些步骤(描述为 here)才能在 VSO (TFS) 构建过程中恢复这些 NuGet 包。

    1. 将以下项目添加到解决方案中。 (nuget.config和.tfignore文件的内容可以在here找到)

    1. 在解决方案文件夹的根路径下添加一个 build.proj 文件。 (build.proj文件的内容可以在here找到)

    2. 在解决方案文件夹的根路径下创建一个名为tools的文件夹。在tools文件夹下创建NuGet子文件夹,下载并保存在tools\NuGet路径下nuget.exe

    3. 签入 nuget.config.tfignorebuild.projtools\NuGet\nuget.exe 进入 TFS 版本控制。

    4. 修改构建定义以选择构建 build.proj 文件。

    然后您将在 TFS 构建过程中成功恢复 NuGet 包。

    【讨论】:

    • 谢谢。我正在使用 vNext 并已指定恢复软件包,但它不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 2020-12-04
    • 2018-01-05
    • 1970-01-01
    • 2016-09-18
    • 2011-07-02
    相关资源
    最近更新 更多