当我从 TFS 下载解决方案后第一次打开解决方案时,它 (Vs2010) 无法找到 NuGet.targets 文件。
我检查了 TFS,它被标记为已下载,并且它存在于文件系统中。
如果我再次尝试直接从 TFS 打开解决方案,它会突然起作用。
我觉得这就是我的自动化构建也失败的原因。
有没有人遇到过这个问题?
当我从 TFS 下载解决方案后第一次打开解决方案时,它 (Vs2010) 无法找到 NuGet.targets 文件。
我检查了 TFS,它被标记为已下载,并且它存在于文件系统中。
如果我再次尝试直接从 TFS 打开解决方案,它会突然起作用。
我觉得这就是我的自动化构建也失败的原因。
有没有人遇到过这个问题?
跑到这个星期五,今天在另一台机器上。
对于周五的机器,我复制了 .nuget 目录,因为我没有。
对于今天的机器,它有 .nuget 目录并从另一台机器复制它并没有解决问题。从 TFS 的源代码管理资源管理器中打开它也不起作用。
然后,我们按照由于 nuget.targets not found 错误(在解决方案上启用包还原)而在 Visual Studio 中打开项目失败的步骤进行操作,并且没有问题。
上周之前没有遇到过这个问题,这只是许多项目中的一个,其他项目都没有这个问题。
当 Visual Studio 从 TFS 下载解决方案时(在解决方案资源管理器中双击 sln 文件),它似乎会一一下载文件并加载它们。不幸的是,它似乎在下载 .nuget 目录之前尝试打开项目文件,这就是它找不到文件的原因。它似乎做的最后一件事是下载该文件,这解释了为什么它在磁盘上但给出了错误。如果您重新打开解决方案,它已经存在并且可以正常工作。
当 TFS 构建服务器下载要构建的解决方案时,它会改为在解决方案目录中执行此操作。这意味着它将在尝试构建之前获取 .nuget 目录,因此它不应该在构建服务器上引起问题。
我相信这是 Visual Studio 中的一个错误,它确实应该首先下载所有解决方案项。虽然如果它具有与 TFS 构建相同的行为会很好。
解决此问题的方法是在首次打开解决方案之前获取解决方案文件夹的最新信息。不理想,但它有效。
我还建议与 nuget 或 Visual Studio 团队一起记录错误,但我怀疑他们可能已经意识到了这一点。
结果是源代码所在的 zip 文件提取到包含逗号的文件夹中,我认为 msbuild 不喜欢。将其移动到更安全命名的目录中会有所帮助。
试试这些步骤