【问题标题】:Recovering code deleted by SQL Server Data Tools (Visual Studio)恢复被 SQL Server Data Tools (Visual Studio) 删除的代码
【发布时间】:2015-02-06 12:18:22
【问题描述】:

我正在 SSIS(集成服务)中制作一个小包,在我的控制流中,我有几个脚本任务和一些数据流,将 XML 文件中的数据读取到数据库中。

我在内置 Visual Studio 编辑器的脚本任务中对 C# 代码进行了一些编辑,然后点击保存。文件名旁的星号消失,表示文件已保存。我关闭了 Visual Studio 编辑器,保存包,右键单击脚本任务并选择“执行任务”。它运行没有错误,但它应该创建的 XML 文件从未出现,所以我再次在 Visual Studio 编辑器中打开脚本,令我恐惧的是那里只有默认脚本(例如,只有 main 方法,它只包含Dts.TaskResult = (int)ScriptResults.Success;声明)!

我一直找不到我在该脚本任务中的代码,当我在文本编辑器中打开 .dtsx 文件时,我的代码不见了!其他脚本任务中的代码在那里。

我注意了,所以在关闭编辑器并保存包之前,我不可能错误地删除了所有内容。

所以我的问题是:有没有其他人遇到过这个完全疯狂的错误,有没有办法恢复代码?还是我只需要硬着头皮从记忆中重新创建它?

我们很少在这些 SSIS 作业中使用大量 C# 代码,因此我们没有任何集成的 VCS。为了安全起见,我一直在将代码复制到一个新文件中并手动将其添加到我自己的 Git 存储库中,但我还没有使用此特定代码执行此操作。

我只需要重申我对 Visual Studio 中如此严重的错误的失望......

【问题讨论】:

  • 不太可能,但在你看来相当于 C:\Users\AlexK\Documents\Visual Studio 2013\Backup Files
  • 谢谢,但不幸的是那个文件夹是空的。我还查看了许多其他可能和不太可能的文件夹。我从一开始就假设我运气不好,但我只是想看看是否有人碰巧有解决方案。此外,稍微发泄一下也不错,因为这样的错误令人震惊。
  • 我以前也遇到过这种情况,但这只是因为我点击了 CANCEL 而不是 OK 退出脚本任务编辑器。有时令人困惑的是,您同时使用组件编辑器和 Visual Studio 来编辑代码。我建议将大量代码放入它自己的项目中,然后从脚本任务中调用 dll。
  • 谢谢你的建议,我下次试试。这里的问题是,是的,我可能在退出脚本任务时点击了cancel 而不是OK,但我所做的更改很小。该脚本任务中的其他代码已经编写了几天并保存了很多次。上次它删除了所有内容并用标准模板替换它。
  • 当我不小心在脚本任务编辑器窗口中列出了一个变量两次时,我发生了这种情况。我更正了问题,但是当我单击确定时,它说存在编译错误并询问我是否仍要保存它。我说是的,当我回去的时候,你瞧,除了默认代码什么都没有。我能够重现该问题。

标签: c# sql-server visual-studio-2010 ssis sql-server-data-tools


【解决方案1】:

我遇到了类似的问题。它是可重现的。该代码存在于 foreach 容器内的脚本任务中。您可以进入并查看代码以确认它是否存在以及为读写设置的变量。接下来转到 foreach(父容器)并更改变量映射。回到脚本任务,代码就没了。我什至让它变得简单,在脚本任务中不使用任何变量,只放入一些 cmets。它仍然会发生并恢复为默认代码。

【讨论】:

  • 可以确认这个行为。如果在 foreach 循环容器中更改了变量,则该容器中的脚本任务代码将在加载项目时删除其代码
  • 我目前有一个关于这个问题的用户语音票。希望它得到更多的牵引力。它有一些赞成票,正在接受审查。 feedback.azure.com/forums/908035-sql-server/suggestions/…
猜你喜欢
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多