[問題處理][SSIS]當使用 SSDT 設計時,無法使用指令碼元件進行編輯 ?
喝完咖啡正要下班的時候,同事傳來打來一通電話,表示在一台新安裝的 SQL Server 2012 環境上,當使用 SSDT 開啟封裝的時候,大部分元件設計和執行都沒有問題,唯有要使用「指令碼元件」進行編輯指令碼式時,就會出現如下的錯誤畫面。
<錯誤訊息>
「無法載入檔案或組件 'Microsoft.VisualStudio.Tools.Applications.Core, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其相依性的其中之一。 系統找不到指定的檔案。 (mscorlib)」
<進階資訊>
原本以為應該是 SSDT 安裝的時候或者是有甚麼元件遺漏了,因此請同事在該電腦的「新增/移除程式」,選擇 SQL Server 的安裝,將之前已經安裝的 Integration Services 和 SQL Server Data Tools,移除之後再重新安裝就好了,不會是甚麼困難才對。
但同事反映這個已經做了兩三次,都還不行。因此想問說是否是因為安裝的環境有問題,還是需要整個打掉重新安裝 ?
收到這樣的問題看起來還蠻特別的,在好奇心的驅使下,連線查看他的移除步驟和安裝步驟,也查了一下錯誤訊息對應的檔案。看起來應該是 Microsoft Visual Studio Tools for Application Runtime 3.0 的 x86 & x64 環境下搭配的問題,因此在如同上述步驟先用安裝工具移除 Integration Services 和 SQL Server Data Tools。
移除之後再透過新增移除程式,將之前有安裝的 Microsoft Visual Studio Tools for Applications 都全部給移除掉。
最後再重新執行 SQL Server 的安裝作業,選擇重新加入 SQL Server Data Tools 和 Integration Services 這兩個功能。
此時再重新啟動 SSDT 之後,就可以正常使用指令碼元件了。
後記 : 該問題主要發生原因是 Integration Services 和 SQL Server Data Tools 安裝的先後順序,如果先安裝了 Integration Services 之後,再透過安裝程式安裝 SQL Server Data Tools ,則就會有該問題發生。一般狀況下我們通常都會一起安裝才對,可能之前安裝的時候有人沒有注意到,後來才在電腦上安裝 SQL Server Data Tools 來開發商業智慧相關功能,才會有這樣的問題發生。當然也有比較偷懶的方式,就是直接打開 SQL Server 的安裝程式,在 redist\VSTA\runtime\x86 下面有個 VSTA_RT30.msi 檔案,手動安裝這個檔案也是一種方式。