项目文件“ ”已被重命名或已不在解决方案中、未能找到与解决方案关联的源代码管理提供程序——两个工程问题

问题背景

IDE:VS 2010 专业版;
工程类型:MFC;
解决方案:多项目解决方案;
版本控制工具:SVN;

问题描述

实验室的项目是使用MFC的工程,首先我从SVN服务器上check out上完整的工程,遇见了第一个问题是“未能找到与解决方案关联的源代码管理提供程序”;
解决了第一个问题之后试图调试其中的主项目,出现第二个问题——项目文件“ ”已被重命名或已不在解决方案中;之后尝试其他项目,发现均会弹出错误窗口:项目文件“ ”已被重命名或已不在解决方案中。后又调试不运行(CTRL+F5),仍然弹出错误窗口。

解决过程和方法

第一个问题——未能找到与解决方案关联的源代码管理提供程序

其实就是字面意思,没有找到解决方案的源代码管理,在网上找了一些解决方法,最后决定试一下将源代码管理设置为无。操作方法是:上方菜单栏点击:工具–>选项–>Source Control–>当前源代码管理插件选择“无”。但是这并没有真正解决我的问题,因为我是要使用管理工具SVN,而不是不使用,但是从这个方法我想到,为什么我的源代码管理插件只有“无”和“visual studio team fundatation server”两个选项,我明明安装了SVN啊。
后来又在网上搜索到,原来安装的只是SVN,这是SVN的主体,主要用于管理代码,但是这个主体并没有关联VS,还要安装插件AnkhSvn。安装好后,源代码管理插件就可以选择AnkhSVN了。
SVN主体的安装包前缀名
SVN用于VS的插件的安装包的前缀名
最后解决成功的界面

第二个问题——项目文件“ ”已被重命名或已不在解决方案中

在网上查询了很多方法,不少方法说全部移除解决方案中的项目,然后重新添加项目到解决方案或者移除项目的引用再重新添加。但有两点原因导致我一直没敢尝试,一是我第一次使用SVN,很多博客给的方法就一段话也没个配图,虽然能理解,但也怕自己的操作引发不可预知的问题对团队造成困扰(实际上只要不提交版本,在本地上怎么操作都不会影响服务器上的代码);二是大多数方法都是互相抄袭,我记得好几个博客字都不带改的,也没有说明原理,方法有效性存疑。
最后还是决定去bing国际版上搜搜,果然还得stackoverflow,看了几篇就大概看懂了,也明白了其中的原理。简单来说,就是在多项目的解决方案中,各个项目之间可能存在引用关系,IDE如何理解项目之间的引用呢?每个项目都有一个身份标识(ID),类似于一下这种形式,9CF2493A-0C79-88E7-12ED-7DFAEBA8535B,可以把.sln用文本编辑器打开查看每个项目的ID。而产生这个问题的原因就是项目里引用的ID与项目的实际ID不同,我的解决方法很简单就是结合两种方法,首先把所有项目从解决方案里移除,记住是全部移除,我即使只移除部分也是不行的,所以全部移除肯定是最保险的方法。全部删除后重新在解决方案中添加现有项目,添加一个项目就紧接着生成该项目。如果该项目没有引用的项目,生成就不会出问题,如果有引用的项目,就仍会有“项目文件“ ”已被重命名或已不在解决方案中”这个问题,因为引用的项目的ID还没有更新,所以就要删除引用,删除前一定要记住有哪些引用,再重新添加引用。直至所有项目添加且生成完成。
因为项目涉密截图再打码太麻烦了,我口述一下移除项目、添加项目、删除引用和添加引用的方法。

  • 移除项目:鼠标左键点击准备移除的项目,然后点击右键在弹出的菜单中选择移除,也可以按delete键
  • 添加项目:鼠标右键点击解决方案,在弹出的菜单中选择现有项目,在弹出的文件对话框中点击要添加的项目文件(.vcproj)
  • 删除/添加引用:鼠标右键点击项目,在弹出的菜单中选择引用,根据按钮做相应的操作即可
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值