5

我在SSIS(Integration Services)中製作了一個小包,而在我的控制流中,我有幾個腳本任務和一些數據流從XML文件中讀取數據進入數據庫。由SQL Server數據工具刪除的恢復代碼(Visual Studio)

我在內置的Visual Studio編輯器的腳本任務中對C#代碼進行了一些編輯,並保存。文件名稱中的星號消失,表示文件已保存。我關閉了Visual Studio編輯器,保存了包,右鍵單擊腳本任務並選擇了「執行任務」。它沒有錯誤地運行,但它應該創建的XML文件從未出現過,所以我再次在Visual Studio編輯器中打開了該腳本,並且令我驚恐的只有默認腳本在那裏(例如,只有主要方法,它只包含Dts.TaskResult = (int)ScriptResults.Success;聲明)!

我一直無法找到我在該腳本任務中的代碼,當我在文本編輯器中打開.dtsx文件時,我的代碼不見了!儘管如此,其他腳本任務中的代碼仍然存在。

我非常關注,所以在關閉編輯器和保存包之前,我沒有辦法錯誤地刪除所有內容。

所以我的問題是:有沒有其他人遇到過這個完全瘋狂的錯誤,並且有沒有辦法恢復代碼;或者我只需要咬下子彈並從內存中重新創建它?

我們很少在這些SSIS作業中使用任何大量的C#代碼,所以我們沒有任何集成的VCS。我一直在將代碼複製到一個新文件中,並手動將其添加到我自己的Git倉庫中,爲了安全起見,但我還沒有使用此特定代碼完成此操作。

我只是要重申我的挫折感在Visual Studio這樣一個令人驚訝的糟糕錯誤......

+0

不大可能看上去相當於C:\ Users \ AlexK \ Documents \ Visual Studio 2013 \ Backup Files – 2015-02-06 12:40:55

+0

謝謝,但不幸的是該文件夾是空的。我已經瀏覽了很多其他可能的和不太可能的文件夾。我從一開始就假定我運氣不好,但我只是想看看是否有人碰巧有解決方案。此外,發泄一點也不錯,因爲像這樣的錯誤令人興奮。 – 2015-02-06 12:53:06

+0

我以前曾經發生過這種情況,但僅僅是因爲我點擊了CANCEL而不是確定退出了腳本任務編輯器。有時令人困惑的是,您正在使用組件編輯器和Visual Studio來編輯代碼。我建議將大量的代碼放入自己的項目中,而不是從腳本任務調用dll。 – 2015-02-06 15:09:19

回答

2

我有一個類似的問題。它是可重複的。該代碼存在於foreach容器內的腳本任務中。您可以進入並查看代碼以確認其是否存在以及爲讀取和寫入設置的變量。接下來轉到foreach(父容器)並更改變量映射。回到腳本任務,代碼不見了。我甚至已經把它變得很簡單,因爲在腳本任務中沒有使用任何變量,只是放入一些評論。它仍然發生並恢復爲默認代碼。

+0

可以確認這一行爲。如果在foreach循環容器中更改了一個變量,那麼該容器中的腳本任務代碼將在加載項目時刪除其代碼 – 2018-02-20 10:04:56

+0

我目前有一個關於此問題的uservoice票證。希望它獲得更多的牽引力。它有一些贊成票,正在審查中。 https://feedback.azure.com/forums/908035-sql-server/suggestions/33215863-ssis-script-tasks-losing-code?tracking_code=36c251f37f8d7fef5c59a1d1456489bf – DataNerd 2018-02-22 13:22:48