无法从TFS运行解决方案,因为缺少所有引用

时间:2015-11-02 19:36:44

标签: tfs visual-studio-2015 azure-devops

我有一个工作正常的项目。今天早上,我创建了一个新的TFS项目并发布了Visual Studio 2015中的所有代码。

在另一台计算机上,也是通过VS2015,我已登录Visual Studio Team Services以获取相同项目并下载所有代码

当我尝试构建时,有超过100个错误,但原因似乎是相同的。它无法找到资源,错误消息似乎都是

  

命名空间名称的类型'某些名称'在' ....'中不存在(你错过了一个程序集引用吗?)

所以,我扩展了参考文献,我几乎全部缺失了。事实上,除了我自己的项目中的引用,其余的不在那里

查看属性显示没有路径。回到原来的PC上,我看到任何.dll的路径也是类似的

  

C:\ Users \ Me \ Documents \ Visual Studio 2015 \ Projects \ MyProj \ ToT \ packages \ Antlr.3.5.0.2 \ lib \ Antlr3.Runtime.dll

问题是因为这条路径在“故障”上并不匹配。机器它无法显示......因此,这个

的解决方案是什么

enter image description here

我检查并注意到,当我在文件资源管理器中查看文件时,文件确实存在。

All system references missing Visual Studio 2013 NuGet Async没有帮助

请注意,我的解决方案中的所有项目都会发生这种情况,但不是很有效。例如,所有人都缺少EntityFramework,但我的UI层缺少系统,但不是来自我的BLL层

有没有办法解决这个问题?

7 个答案:

答案 0 :(得分:7)

您需要运行update-package -reinstall命令以重新安装所有引用的包。

答案 1 :(得分:7)

我遇到了同样的问题,现在有很多答案,但我仍然会在这里发布:

1.关闭Visual Studio 2.手动删除本地“packages”文件夹 3.重新打开解决方案,然后重建。 (Nuget应该恢复包)

来源: http://robertgreiner.com/2013/09/team-foundation-service-build-error-nuget/

答案 2 :(得分:0)

首先,转到VS - Tools - Extensions and Updates以检查是否有更新,安装所有更新。然后选择一个带有警告图标的引用,检查特定版本属性,如果值为True,则将其更改为 False

如果问题仍然存在,请检查两台计算机上的.Net框架的参考组件,看看它们是否位于同一位置(.Net框架应该位于* C:\ Program Files(x86)\参考Assemblies \ Microsoft \ Framework.NETFramework *)。

=============================================== ========================== 11/5:为了避免缺少引用,您可以签入对源代码控制的所有引用和源代码管理引用,也可以使用Nuget Package Manager来安装软件包。现在不建议使用之前的版本,请尝试使用Nuget Package Manager。

答案 3 :(得分:0)

听起来微不足道但你缺少对system.xxxx的引用可能意味着.NET Framework存在问题,你使用的是什么版本,是否正确安装在你的“错误”上?机。可能值得重新安装/维修?我还要检查实际引用的版本。

对于NuGet,请确保启用包恢复设置为:

enter image description here

此外,我遇到了与此类似的问题,我不得不在工具 - >中将NuGet包管理器升级到版本3 扩展程序和更新(您需要卸载然后重新安装,因为更新无法正常工作)

enter image description here

如果这不起作用,请检查包路径中的文件资源管理器并删除所有包。它们不应包含在源代码管理中,因为这是NuGet将下载的内容。如果它们在那里或部分存在,有时它不会下载它们。

答案 4 :(得分:0)

验证.NET版本:

  1. 打开项目属性窗格并检查目标框架:enter image description here

  2. 确保安装了此版本的.NET。 OR 将目标框架更改为合适的版本

答案 5 :(得分:0)

在使用百万Nuget'修复程序'撞到墙上之前,您需要确保在源代码管理下获取Bin文件夹中的所有DLL 。由于某种原因,一个简单的“获取最新版本”是不够的。 Visual Studio会一直告诉你所有文件都是最新的,但显然这并不意味着源代码控制下的所有文件都已下载(或者它确实发生了,而我发生的事情只是一个时髦的bug)。无论如何,为了确保你真正“全力以赴”,你需要使用“获取特定版本”命令强制更新,并在VS建议中选中“全部覆盖”选项。要做到这一点:

  1. 转到源代码管理资源管理器中的Bin文件夹(或者你真正希望得到的所有文件夹)

  2. 右键点击>高级>获取特定版本

  3. 选中“即使本地版本与指定版本匹配也覆盖所有文件”复选框

  4. 点击获取

  5. 通过这样做,我确保所有引用的DLL都是从TFS下载的,对我来说解决了这个问题。我正在使用Visual Studio Enterprise 2015。

答案 6 :(得分:0)

转到工具 - > nuget包管理器 - >包管理器控制台 - >并运行到控制台:UPDATE-PACKAGE -REINSTALL。 清理您的解决方案,重建并准备就绪!