Visual studio 为什么在TFS签入/签出后Visual Studio会丢失我的库映射?

Visual studio 为什么在TFS签入/签出后Visual Studio会丢失我的库映射?,visual-studio,tfs,Visual Studio,Tfs,我在一台机器上构建应用程序已经有一段时间了,最后进行了TFS签入 启动另一个新的工作区并执行签出,解决方案不再编译,在整个解决方案的各个项目中,引用已丢失,错误/警告如下: The type or namespace name 'OData' does not exist in the namespace 'System.Web.Http' (are you missing an assembly reference?) Could not resolve this reference. Cou

我在一台机器上构建应用程序已经有一段时间了,最后进行了TFS签入

启动另一个新的工作区并执行签出,解决方案不再编译,在整个解决方案的各个项目中,引用已丢失,错误/警告如下:

The type or namespace name 'OData' does not exist in the namespace 'System.Web.Http' (are you missing an assembly reference?)
Could not resolve this reference. Could not locate the assembly "EntityFramework".

警告1无法从程序集C:\TFS WorkRepository\Project\Project Solution-v001\packages\Microsoft.Bcl.Build.1.0.21\Build\Microsoft.Bcl.Build.Tasks.dll加载“EnsureBindingRedirects”任务。
无法加载文件或程序集的file:///C:\TFS WorkRepository\Project\Project解决方案-
v001\packages\Microsoft.Bcl.Build.1.0.21\Build\Microsoft.Bcl.Build.Tasks.dll'
或者它的一个依赖项。系统找不到指定的文件。证实
声明是正确的,大会及其所有
依赖项可用,并且任务包含
实现Microsoft.Build.Framework.ITask。Project.Admin网站
我已经在解决方案和其他导入的库/DLL的相应公共/lib文件夹中启用了Nuget package restore

我猜如果我为解决方案项目签入
bin
obj
文件夹,一切都会正常。但是,通常TFS用于代码,而不是DLL

那么,我怎样才能避开这个问题呢


谢谢。

我不同意签入bin文件夹。有很多更好的方法来处理依赖关系,并且根据依赖关系的不同而有所不同!在本例中,使用您自己的代码,您可以考虑托管您自己的NuGet服务器:然后您可以以相同的方式引用私有程序集和公共程序集

或者,一种简单(更低级)的方法是在解决方案的根目录下创建一个“Dependencies”文件夹,将其与您的私有程序集和引用一起添加到源代码管理中


关于你的软件包还原问题,我最近遇到了这样的问题,尝试删除你的软件包文件夹的内容(也从源代码中删除),但保留repositories.config并重新运行。

你也必须签入
bin
文件夹,因为project从那里引用了
dll
,可能是丢失文件和
obj
不确定的可能性之一。关于
确保绑定重定向
问题,您可以找到解决方案,bin是一个很难参考的地方,因为如果从其他地方引用,它有时可能是dll的本地副本。e、 g.复制本地设置为true的GAC。请记住,bin用于生成输出!
    Warning 1   The "EnsureBindingRedirects" task could not be loaded from the assembly C:\TFS-WorkRepository\Project\Project Solution - v001\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.Tasks.dll.
 Could not load file or assembly 'file:///C:\TFS-WorkRepository\Project\Project Solution -
 v001\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.Tasks.dll' 
or one of its dependencies. The system cannot find the file specified. Confirm 
that the <UsingTask> declaration is correct, that the assembly and all its 
dependencies are available, and that the task contains a public class that 
implements Microsoft.Build.Framework.ITask. Project.AdminWebsite