【问题标题】:Nuget.targets not found on first time solution opening首次打开解决方案时未找到 Nuget.targets
【发布时间】:2012-05-18 23:25:09
【问题描述】:

当我从 TFS 下载解决方案后第一次打开解决方案时,它 (Vs2010) 无法找到 NuGet.targets 文件。

我检查了 TFS,它被标记为已下载,并且它存在于文件系统中。

如果我再次尝试直接从 TFS 打开解决方案,它会突然起作用。

我觉得这就是我的自动化构建也失败的原因。

以前有人遇到过这个问题吗?

【问题讨论】:

  • 您是否检查过解决方案目录中的 .nuget 目录与 NuGet.targets 文件? NuGet.targets 使用 $(SolutionDir) 变量定位,除了文件不在本地之外,我看不到任何其他原因......
  • 是的,一切都在那里 - 正如我在问题中所说的那样 - 一切正常,第二次......

标签: tfs continuous-integration nuget


【解决方案1】:

这个星期五跑到今天在另一台机器上。

对于周五的机器,我复制了 .nuget 目录,因为我没有。

对于今天的机器,它有 .nuget 目录,从另一台机器复制它并没有解决问题。从 TFS 的源代码管理资源管理器中打开它也不起作用。

然后我们按照Opening project in Visual Studio fails due to nuget.targets not found error 上的步骤(在解决方案上启用包还原),它没有问题地工作。

上周之前没有遇到过这个问题,这只是众多项目中的一个,其他项目都没有这个问题。

【讨论】:

    【解决方案2】:

    当 Visual Studio 从 TFS 下载解决方案时(在解决方案资源管理器中双击 sln 文件),它似乎会一个一个地下载文件并加载它们。不幸的是,它似乎在下载 .nuget 目录之前尝试打开项目文件,这就是它找不到文件的原因。它似乎做的最后一件事是下载该文件,这解释了为什么它在磁盘上但给出了错误。如果您重新打开解决方案,它已经存在并且可以正常工作。

    当 TFS 构建服务器下载要构建的解决方案时,它会改为在解决方案目录中执行此操作。这意味着它将在尝试构建之前获取 .nuget 目录,因此它不会在构建服务器上引起问题。

    我认为这是 Visual Studio 中的一个错误,它确实应该首先下载所有解决方案项。虽然如果它具有与 TFS 构建相同的行为会很好。

    解决此问题的方法是在首次打开解决方案之前获取解决方案文件夹的最新信息。不理想,但它有效。

    我还建议向 nuget 或 Visual Studio 团队记录错误,但我怀疑他们可能已经意识到了这一点。

    【讨论】:

      【解决方案3】:

      我在尝试通过 http://www.windowsazure.com/en-us/develop/net/tutorials/multi-tier-web-site/2-download-and-run/ 上的教程运行时遇到了这个问题

      原来是源代码所在的 zip 文件提取到一个包含逗号的文件夹中,我认为 msbuild 不喜欢它。将其移至命名更安全的目录会有所帮助。

      【讨论】:

      • 非常感谢。你拯救了我的一天..!
      【解决方案4】:

      试试这些步骤

      1. 安装 Nuget。
      2. 右键单击解决方案并选择“启用 NuGet 包 恢复”。
      3. 在警告上单击“确定”。
      4. 关闭并重新打开解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-14
        相关资源
        最近更新 更多