2015-11-02 59 views
6

我有一个可以正常工作的项目。今天早上,我创建了一个新的TFS项目,并发布了Visual Studio 2015中的所有代码。由于所有引用丢失,无法从TFS运行解决方案

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

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

类型的命名空间名称“一些名”中不存在“......”(是否缺少程序集引用?)

因此,我展开了参考文献,我几乎错过了所有这些参考文献。实际上,除了我自己的项目中的参考文献外,其余部分不在

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

C:\用户\我\文档\ Visual Studio的2015年\项目\的Myproj \在ToT \包\ Antlr.3.5.0.2 \ LIB \ Antlr3.Runtime.dll

是,由于这条道路不匹配“故障”机不能显示在这个问题上。所以如何解决这一

enter image description here

我检查并注意到文件确实存在wh我在File Explorer中查看它们。

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

请注意,这种情况发生在我的解决方案的所有项目,但不consitently。例如,EntityFramework从所有缺失,但系统从我的UI层,但不是从我的BLL层丢失

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

+0

您的项目是否在VS 2015中创建?你在使用TFS TFVC还是GIT?当你发现这个问题时,你排队本地构建或TFS构建? –

+0

@ Cece,最初的解决方案VS 2012,但迁移到VS 2015.与SVN一直很好。现在删除SVN以使用TFS Express(不使用GIT)。我不知道我在做任何排队或在TFS建设,当我在VS – MyDaftQuestions

+0

建立'nuget restore'作为加载解决方案后的第一步构建步骤时出现问题 – leppie

回答

6

你需要运行更新包-reinstall命令重新安装所有引用的包。

+1

解决此问题的其他选项(如Valeria所述)将删除软件包文件夹的内容。 VS和TFS在默认情况下检查包文件夹的内容是不是很愚蠢?因为用于C#开发的默认git忽略文件已将它们排除在源代码管理之外 – WhiteIntel

+0

我遇到了类似问题,您的解决方案或Valeria's都不适合我。任何想法接下来要尝试什么? – rsnyder

-1

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

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

============================================== =========================== 11/5:为避免引用缺失,您可以检入所有对源代码管理和引用的引用源代码控制的,或者使用Nuget Package Manager来安装软件包。以前不推荐使用,请尝试Nuget Package Manager。

+0

我检查工作PC上的路径,Antlr3.Runtime的路径是'C:\ Users \ Me \ Documents \ Visual Studio 2015 \ Projects \ MyProj \ ToT \ packages \ Antlr.3.5.0.2 \ lib \ Antlr3.Runtime.dll' ...其他计算机上没有路径一个有故障)。似乎问题在于它没有采用相对路径名,而是绝对的.dll。如果这个假设是正确的,我该如何分享机器之间的软件包? – MyDaftQuestions

+0

右键点击你的解决方案,在Nuget Package Manager下选择“管理Nuget包的解决方案”,搜索“antlr”并安装它,然后检查解决方案,当你从另一个解决方案获得解决方案时,你应该能够看到.dlls电脑。 –

+1

为了避免引用缺失,您可以检入所有对源代码管理的引用,并从源代码管理引用中进行引用,或者使用Nuget Package Manager来安装程序包。以前不推荐使用,请尝试Nuget Package Manager。 –

0

声音微不足道,但是您对system.xxxx的缺失引用可能意味着.NET Framework的问题,您使用的是哪个版本,并且它是否安装在错误的机器上。可能值得重新安装/修复?我会检查实际参考的版本。

至于的NuGet,确保启用包恢复设置为:

enter image description here

而且,我有一个类似的问题,曾经和我不得不升级到版本的NuGet包管理器3 工具 - >扩展和更新(您需要卸载,然后重新安装作为更新将无法正常工作)

enter image description here

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

0

验证.NET版本:

  1. 打开项目属性面板进行查看目标框架:enter image description here

  2. 确保该版本的.NET的安装。 OR改变目标框架,以合适的版本

0

打你的头靠在墙上的NuGet“修复”的百万之前,你需要确保你得到一切都在DLL中您的Bin文件夹在源代码管理下。出于某种原因,一个简单的“获取最新版本”是不够的。 Visual Studio会一直告诉你所有的文件都是最新的,但显然这并不意味着所有在源代码控制下的文件都被下载到了(或者它发生了什么,发生在我身上的只是一个时髦的bug)。无论如何,为了确保你真正“全部获得”,你需要使用“获取特定版本”命令强制更新,同时按照VS建议选中“覆盖全部”选项。为此,请执行以下操作:

  1. 转到源代码管理资源管理器中的Bin文件夹(或w。Ë文件夹你真的想要得到全部)

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

  3. 选中该复选框

  4. 点击“覆盖所有文件,即使本地版本的指定版本相匹配”获取

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

0

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

相关问题