【问题标题】:OctoPack failing in TFS BuildOctoPack 在 TFS 构建中失败
【发布时间】:2014-09-03 07:32:54
【问题描述】:

我在 Visual Studio 2013 中使用 Visual Studio Online。构建失败

You are trying to build with OctoPack, but the NuGet targets file that OctoPack depends on is not available on this computer. This is probably because the OctoPack package has not been committed to source control, or NuGet Package Restore is not enabled

根据此链接https://octopusdeploy.com/blog/octopack-3.0我需要进行一些更改以使程序包恢复正常工作,但前一个链接中的另一个链接说如果使用VS2013和Visual Studio Online Nuget.org则不需要配置@

当我在 VS 中构建时,首先恢复所有包,然后构建项目。此外,如果我构建项目并通过命令行调用 Octopack,一切正常。想法?

【问题讨论】:

    标签: azure-devops octopus-deploy


    【解决方案1】:

    如果您在构建之前运行NuGet Package Restore,这应该可以工作。但是,请确保您的项目文件中引用 OctoPack.targets 的路径是正确的 - 您可能已经移动了您的包文件夹或项目文件,并且相对路径不再匹配。修复它的最简单方法是运行Update-Package -Reinstall Octopack

    【讨论】:

      【解决方案2】:

      NuGet Package Restore 最近已更改,因此您无需在解决方案中包含 NuGet 即可执行包还原。但是,OctoPack 仍然需要路径上的NuGet 才能找到它。您可以尝试在调用 OctoPack 时通过添加此参数来显式指定 NuGet 的路径。

      /p:OctoPackNuGetExePath=<path>\nuget.exe
      

      【讨论】:

      • Octopack 包含 Nuget。如果你查看它下载的包,它的工具文件夹中有 NuGet.exe。我能让这个工作的唯一方法是将 Octopack 及其所有子项检查到源代码控制中。糟透了,但无法让它以任何其他方式工作。
      • 同样的问题。相同的解决方案。
      【解决方案3】:

      您只需签入 Octopack 目标文件。

      \packages\OctoPack.2.0.26\targets\OctoPack.targets

      【讨论】:

      • 在源代码管理中签入 NuGet 包(或其中的一部分)不是可行的方法。