无法将从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 ...
随机推荐
- P2370 yyy2015c01的U盘(二分+背包)
思路:先说一下题意吧.就是给你n个文件大小为v,价值为c, 但是硬盘的大小为S, 而且要存的总价值大于等于p.问每次传输k大小的文件.问k的最大值是多少? 我们以k为二分对象. 直接讲检验函数吧. 假 ...
- WiFi-ESP8266入门http(1)-建立服务器,直接发送网
#include <ESP8266WiFi.h> /*** 该工程可以在2.4.0版本esp8266库中运行,没在更高版本库中进行测试 ***/ const char *ssid = &q ...
- pytorch torchvision.ImageFolder的使用
参考:https://pytorch-cn.readthedocs.io/zh/latest/torchvision/torchvision-datasets/ torchvision.dataset ...
- appium-基本操作的再次封装(加上文件路径、log、截图、异常处理)
一:日志 二:文件路径 三:截图 四:异常处理(对基本操作,例如:等待元素出现.点击.按键灯进行封装.加上截图和日志记录)
- 项目代码迁移(使用git)
克隆老仓库(裸仓库):git clone --bare git@codehub.devcloud.huaweicloud.com:e2f197xxxxxxx19fc4ae7348b2ed41/Node ...
- 环境部署(六):Git关联github
我们使用Git进行版本管理,前面的博客也介绍了Linux下安装Git以及Git基础教程,这篇博客,简单介绍下如何使用Git关联github... 更多关于Git的内容,可参考下列内容: Git官方文档 ...
- C++11 并发指南四(<future> 详解二 std::packaged_task 介绍)
上一讲<C++11 并发指南四(<future> 详解一 std::promise 介绍)>主要介绍了 <future> 头文件中的 std::promise 类, ...
- Hibernate缓存策略(一级缓存和EHcache二级缓存)
如何配置二级缓存: 第一步:导入EHcache依赖 1)Maven项目: <!--此处使用hibernate4--> <dependency> <groupId>o ...
- .NET Core Community 第二个千星项目诞生:Util
本文所有打赏将全数捐赠于 NCC(NCC 的资金目前由 倾竹大人 负责管理),请注明捐赠于 NCC.捐赠情况将由倾竹大人另行公示. 项目简介 作为一款旨在提升小型团队开发输出能力.提高团队效率.降低项 ...
- .net core jwt
https://www.cnblogs.com/JacZhu/p/6837676.html