在Visual Studio 2013和TFS中单击"撤消挂起的更改..."后,如何才能恢复我的更改

nav*_*8tr 17 tfs visual-studio-2013

使用Visual Studio 2013和TFS我在签入之前做了很多工作.然后我不小心点击撤消挂起的更改...认为它只适用于我的解决方案中的一个项目.不幸的是,它适用于所有项目.我怎样才能得到我的更改?

链接之前已经问过这个问题.一个人建议使用Reflector复制dll.我下载了Reflector,但我不确定如何使用它.我如何使用Reflector来恢复我的更改.

Dny*_*esh 25

只是为了你的帮助.根据stackoverflow的问题链接共享.他试图说,如果你还没有建立你的项目.您可以在Reflector中打开最后构建的dll,并查看文件的代码并恢复代码.

您可以使用JetBrains中的Reflectordotpeek.

访问此链接以了解有关dotpeek的更多信息

但是,如果您在执行Undo Pending更改后构建了项目,那么根据我的知识,无法获取代码.

  • 您正在处理什么类型的 Windows/Web 项目?更重要的是,您是否在撤消挂起的更改后构建了应用程序? (2认同)
  • 对于我来说,在单击我的函数后,我不得不使用右键单击“反编译源”。 (2认同)

nav*_*8tr 11

难以置信的!在放弃并重写我丢失的所有代码后,我能够恢复文件.按下"撤消挂起的更改"后,我再也没有构建解决方案.然后,我关闭了解决方案,复制了整个工作区并以不同的名称保存.接下来,我重新打开了原始解决方案.然后,我从丢失的文件的原始位置使用"添加现有项目".然后,(这里是很酷的部分)我导航到复制的工作区,找到丢失的文件,并在原始位置.大!在重写代码之前,我只希望我这样做!

对我来说,这个解决方案纯粹是偶然发现的,但我希望其他人可以在将来使用这些信息.请注意,我在解除更改之后从未构建解决方案,这可能是文件仍然位于其原始位置但在解决方案本身中不可见的原因.

  • 复制整个目录没有什么神奇之处 - 从复制的工作区添加的文件必须仍然存在于原始目录中.这听起来像你创建了新文件,并试图将它们添加到TFVC - 在这种情况下这是有道理的,因为"撤消待定更改"不会删除您创建的新文件,它只是将它们从分阶段更改列表中删除承诺. (3认同)

Dav*_*e A 8

今天发生在我身上,但是在我用一个未经证实的版本覆盖了本地更改之后.我尝试反编译dll,但它太旧了,没有更改.我终于在"AppData\Local\Temp\TFSTemp"中找到了TFS临时diff文件的更改.这些文件都有像"vctmp4316_370233.cs"这样的名字,但它们都在那里,谢天谢地我能够恢复我的更改.

如果你有MSTest单元测试你可能会尝试另一件事是在解决方案"TestResults"文件夹中寻找dll.

最后一步是设置某种备份系统,这样就不会再发生了.

  • 不,我说的是 Windows 用户文件夹中隐藏的 AppData 文件夹,例如 C:\Users\SomeRandomDeveloper\AppData\Local\Temp\TFSTemp (2认同)