无法将从VSS中的解决方案添加到TFS的源代码管理器中
VSS是一种非常有用的项目文件管理工具,百度百科的解释是:VSS 的全称为 Visual Source Safe 。作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目。管理软件开发中各个不同版本的源代码和文档,占用空间小并且方便各个版本代码和文档的获取,对开发小组中对源代码的访问进行有效的协调。但是在最近公司选择将TFS作为源代码管理工具,从而进行敏捷开发,所以我就将新的解决方案添加到TFS中,但是总是提示找不到\NBYZGA_Client_20150610\CustomControlLibrary\bin目录,然后就开始查找这个目录,然后查找整个解决方案,最终找不到任何相关的有用信息,那么TFS是从哪里查找到这些信息的呢,后来一个同事告诉我,用记事本打开sln文件,然后找到相关的内容,然后再将其删除掉就可以了,我照做了一下,果然找到了相关的信息:
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Files", "_Files", "{58BF0E02-2D9B-4F2E-BD97-F747ECD5BCFB}"
ProjectSection(SolutionItems) = preProject
..\NBYZGA\20151102\NBYZGA_Client_20150610\CustomControlLibrary\bin\Debug\CustomControlLibrary.dll = ..\NBYZGA\20151102\NBYZGA_Client_20150610\CustomControlLibrary\bin\Debug\CustomControlLibrary.dll
_Files\DateTimePickerControl.dll = _Files\DateTimePickerControl.dll
_Files\Eas.dll = _Files\Eas.dll
_Files\EAS.MicroKernel.dll = _Files\EAS.MicroKernel.dll
_Files\System.Linq.Expressions.dll = _Files\System.Linq.Expressions.dll
_Files\System.ObjectModel.dll = _Files\System.ObjectModel.dll
_Files\System.Runtime.dll = _Files\System.Runtime.dll
_Files\System.Windows.Interactivity.dll = _Files\System.Windows.Interactivity.dll
EndProjectSection
原来当你打开一个解决方案的时候,你所引用的DLL都是程序中通过这些信息来查找的,特别是将一个解决方案添加到TFS的源代码管理器中的时候,首先是从这个路径来查找相关的引用文件的,所以一旦我们将解决方案中相关的文件夹删除掉的话,那么程序就找不到相关的DLL文件。
我们接着来看看sln文件用记事本打开以后有哪些重点的东西:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChartTest", "Tests\TestApps\ChartTest\ChartTest.csproj", "{173A15C2-D332-4FC2-87FD-0A9E58A431CB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Message", "Modules\Message\Message.csproj", "{2AF19951-02F8-4C05-9E7E-918029BC3B64}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "X.Effects", "Public\X.Effects\X.Effects.csproj", "{2D0CD90B-9B16-4B76-A58D-C794A96108B0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tasks", "Modules\Tasks\Tasks.csproj", "{113ED2E9-E680-4BAE-A123-1E5F7530C78A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinForm", "Tests\WinForm\WinForm.csproj", "{23AE97CA-2DB9-4942-ADAA-DA6EE0A1F539}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "X.Service.DataExchange.Winform", "Services\X.Service.DataExchange.Winform\X.Service.DataExchange.Winform.csproj", " {C5ABB2FF-0E5E-4459-96A7-326E1ADDB8B4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Users", "Modules\Users\Users.csproj", "{87F03A58-EB7F-4A86-A27E-7C1C0EA1F189}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DefaultUserRegister", "Modules\DefaultUserRegister\DefaultUserRegister.csproj", "{3B2F034A-310C-4ABD-A96D-4043EC43A948}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Plans", "Modules\Plans\Plans.csproj", "{F5A2C942-0EE9-42AD-A251-32D015C18078}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GQYPGIS", "Apps\GQYPGIS\GQYPGIS\GQYPGIS.csproj", "{D98B2A92-8785-4A8F-B5C3-236A41AB4AC3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Server", "Server", "{2873314B-0ABA-4E52-9F3B-95D3AEC76D59}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerShell", "Server\ServerShell\ServerShell.csproj", "{FB521BA7-E11A-4782-ACCA-CC5E93716B85}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DLPVideoApp", "Apps\DLPVideoApp\DLPVideoApp.csproj", "{C6B8B748-21DC-4DEF-9C1A-25BF0C7DBC0C}"
EndProject
然后对照代码我们会发现,代码中的每一个类库以及相关的文件夹以及其中添加的DLL文件都有唯一的映射,Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerShell", "Server\ServerShell\ServerShell.csproj", "{FB521BA7-E11A-4782-ACCA-CC5E93716B85}"这一句表示 ServerShell这个名称的类库对应"Server\ServerShell\ServerShell.csproj"路径下的这个项目,而且每一个项目对应一个唯一的GUID,这样我们就能通过打开sln文件然后打开所有的解决方案下面的类库以及其他的文件。
还是回到上面的代码,为什么程序提示找不到CustomControlLibrary.dll 这个DLL,因为我们将其他类库生成的这个dll直接放到了bin\Debug这个目录下,然后直接引用这个目录下的DLL,这样在我们每次保存解决方案的时候,相关的DLL信息就被保存到了sln文件中,从而便于下次进行查找,这样做在平时是没有什么问题的,因为所有引用的DLL都会默认复制到输出目录,但是这种做法在将解决方案添加到VSS或者TFS中就会出问题,因为这些源代码管理器是不会讲bin及其子目录添加到源代码管理器中的,所以别人在获取这些源代码的时候也是无法获取bin目录的,所以当别人打开解决方案时就会找不到当前引用的DLL,所以在写代码时一定要养成很好的习惯,在解决方案下建一个专门存放引用DLL的文件夹,然后从这个位置去引用,这是一个非常重要的习惯。
另外在我们的代码中我们经常会编译成不同的版本,有时一不小心就会删掉重要的文件,所以这些小习惯非常重要,希望能够引起所有人的重视。
无法将从VSS中的解决方案添加到TFS的源代码管理器中的更多相关文章
- TFS 中如何将项目加入已有的源代码管理器中?
Visual Studio 的某解决方案已经加入 Team Foundation Server,现在再将已经存在的项目加入到解决方案中,可是签入时,并没有把新加入的项目签入,怎么办呢? 在团队资源管理 ...
- 如何在URL筛选管理器中过滤不需要的URL
互联网可以说是一把名副其实的双刃剑.一方面其可以提高工作效率.给企业提供充分的资源;另一方面如果管理不严,也会带来很多的隐患.如员工在上班时间玩游戏.炒股等等.为此现在很多企业希望对员工的网络行为进行 ...
- 通过srvctl add命令添加database信息到srvctl管理器-转
这是我在实际中遇到的一个问题,rac+dg架构将备库切为主库,srvctl管理器中没有database信息. 对于dbca创建的数据库,srvctl中包含了数据库和实例的信息.但是对于备份恢复的RAC ...
- 解决方案看起来是受源代码管理,但无法找到它的绑定信息。保存解决方案的源代码管理设置的MSSCCPRJ.SCC文件或其他项可能己被删除。
Visual Studio 2015 + SVN 开发环境,今天打开项目,就报了下面这个错误,先前是好好的! 解决方案看起来是受源代码管理,但无法找到它的绑定信息.保存解决方案的源代码管理设置的MSS ...
- 通过srvctl add命令添加database信息到srvctl管理器
================================================通过srvctl add命令添加database信息到srvctl管理器================ ...
- f2fs解析(八)node 管理器中的node_info
free_info 功成身退,node_info顺利接班. // 这里还是蛮复杂的一件事,如果不搞清除的话,这个历史性的接班工作我们就接不上 上面说到 alloc_nid 和 alloc_nid_do ...
- f2fs解析(七)node管理器中的 free_nid 结构体
除了node_info之外, node管理器中还有还有个重要的数据结构: struct free_nid { struct list_head list; /* for free node id li ...
- 元数据管理器中存在错误。 实例化来自文件“\\?\C:\Program Files\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Data\Tfs_Analysis.0.db\vDimTestCaseOverlay.874.dim.xml”的元数据对象时出错。
一.发现问题 启动SQLSERVER的数据分析服务失败 查看系统日志错误如下: 双击错误后显示详细错误: 元数据管理器中存在错误. 实例化来自文件“\\?\C:\Program Files\Micro ...
- Vusial Studio连接不到源代码管理器Vss
我的VS突然链接不到我的源代码管理器了,重新注册一下就好了,regsvr32是注册命令,后面的填你自己的源代码路径 regsvr32 "E:\vss\ssscc.dll" regs ...
随机推荐
- UVA10410-Tree Reconstruction(BFS序和DFS序的性质)
Problem UVA10410-Tree Reconstruction Accept:708 Submit:4330 Time Limit: 3000 mSec Problem Descripti ...
- Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程
[案例]Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程 转惜纷飞 今天ML的群中女神和travel在纠结一个恢复的问题,11.2.0.3版本,非归档,大概是rm掉current ...
- SSH远程SOLARIS11时被拒绝
在虚拟机中新安装的solaris11,安装过程中配置了静态IP地址用以方便ssh连接,使用root用户ssh连接时,密码没有错,但总是提示密码被拒绝,连接established 代表是通的,telne ...
- [转]C#中基于GDI+(Graphics)图像处理系列之前言
直接给出原文链接吧: C#中基于GDI+(Graphics)图像处理系列之前言 链接:https://pan.baidu.com/s/1zm5TCOHqkqEfiLZuqO0UMA 提取码:qz0h
- <网络编程>IO复用
IO复用是一种机制,一个进程可以监听多个描述符,一旦某个描述符就绪(读就绪和写就绪),能够同志程序进行相应的读写操作. 目前支持I/O复用的系统调用有select,poll,pselect,epoll ...
- 使用webstrom开发react-native时react-native代码会出现红色下划线的解决方法
问题:使用webstrom开发react-native时react-native代码会出现红色下划线的解决方法 解决方法:webstrom ->preferences->Laugrange ...
- Asp.net中web.config配置文件详解(二)
摘自http://blog.csdn.net/hbqhdlc/article/details/8155668 近日正在看Asp.net,看到Web.config有很不清楚之处,特意从网络.MSDN搜集 ...
- HandlerThread解析
HandlerThread是一种具有消息循环的线程.HandlerThread可以接收消息并处理消息,并执行一些耗时操作,这样UI线程就可以把一些耗时的操作命令发送给HandlerThread,由该线 ...
- C# socket实践 - 简易版FTP(Server & Client)
写了个简易版的ftp(服务器和客户端),运行效果如下图: click download下载中的UI: 原理:模仿正规ftp方式,分成2个socket连接:文本命令socket.数据信道socket. ...
- 【Python入门只需20分钟】从安装到数据抓取、存储原来这么简单
基于大众对Python的大肆吹捧和赞赏,作为一名Java从业人员,我本着批判与好奇的心态买了本python方面的书<毫无障碍学Python>.仅仅看了书前面一小部分的我......决定做一 ...