在项目文件更改时,使Visual Studio自动重新加载解决方案

时间:2011-01-26 09:00:44

标签: visual-studio visual-studio-2010 reload

在我正在进行的当前项目中,目前有大量代码流失,这意味着从源代码控制更新有时会导致许多csproj文件更改。众所周知,VS2010没有“全部重新加载”按钮,但您必须重新加载每个项目并确认每次重新加载。

是否存在自动重新加载项目或IDE可以检测到此项并请求重新加载解决方案的方法?

4 个答案:

答案 0 :(得分:29)

终于找到了解决方案:

http://lostechies.com/jimmybogard/2011/01/27/reloading-all-projects-with-vscommands/

从网站引用:

  

我常常会发现自己在工作   在多个项目的情况下   已经改变了,Visual Studio问了   一次一个地重新加载它们。这个   当我和我一起工作时会发生   源代码控制,以及做类似的事情   切换分支,执行合并,   或者只是整合上游变化。   我必须点击“重新加载”一百万   改变的每个项目的时间   磁盘,这很烦人。在上面   其中,VS忘记了我拥有的文件   打开,所以我正在工作的每个文件   关闭。

     

我可能是最后一个VS用户   关于这个,但免费精简版   VSCommands插件是available on the Visual Studio Gallery   正是我需要的 - 重新加载所有改变   项目立刻,保留哪些   我打开过的文件:

答案 1 :(得分:4)

这很痛苦,但我发现最好的选择是在获取最新的源代码之前关闭解决方案。

如果有两个以上更改的项目,则手动卸载并重新加载整个解决方案比获取并等待它卸载并仅重新加载受影响的项目更快 - 重新加载项目速度很慢(甚至无需为每个更改的项目单击“确定”按钮)。

(在我看来,真正的问题是:它为什么要问这个问题?如果你得到最新的源代码,那么绝对没有理由为什么你只想使用它的一部分。就像一个加油站服务员说“你买了一些燃料。你想我现在真的把它放在你的车里,还是我只是把它倒在地上?”

答案 2 :(得分:1)

嗯,如果您的引用路径在csproj文件中发生了更改,而您使用类似sysinternals junction tool之类的内容来更改符号链接,那么这不起作用。例如。工具开关D:\从符号链接D:\ Baselines \ 1.0 \ Prjects到D:\ Baselines \ 2.0 \ Projects,因为有人在1.0和2.0之间更改了文件夹结构,你的.csproj文件突然指向dll路径.. .. \ References \ some.dll to .... \ References \ 3rd-Party \ some.dll。我知道这是一个特例,但发生了(例如在我的公司)。

虽然有一个替代解决方案,我强烈建议,因为它还有其他好处:不太知名的VS 2010扩展Solution Load Manager。它将项目的加载延迟到后台,或者直到手动加载,从而大大增加了大型解决方案文件的解决方案加载时间。它的菜单中有“重新加载解决方案”按钮(不幸的是似乎没有快捷方式),然后从头开始重新加载所有解决方案,跳过/后台加载您设置的解决方案。一位微软的家伙在他的博客上评论说他们希望在VS 2010中包含类似的内容,但该功能并没有完全成功。

当然,可能需要更长的时间“只需”一次点击并更新100个文档,但它解决了我(相对)参考路径更改的问题,并且每次打开至少中等大小的解决方案时都会提供很好的速度提升。

截至2013年10月编辑 VS2012默认包含此功能。至少是异步加载的东西。遗憾的是,只有在VS2012中使用手动“卸载项目”才能实现“根本不加载”功能。但随着公关项目的内存消耗确实随VS2012而下降,它不再是那么大的交易了。

答案 3 :(得分:-3)

如果在选项的“文档”部分中选中了“检测文件在环境之外的更改时”选项,则在更改时会重新加载项目和文件。在git中切换分支时,它适用于我。

VS option screenshot