Code Project

Link Unit

Wednesday, April 29, 2015

Task failed because 'sgen.exe' was not found

In one of SSIS package we were trying to build the SSIS script task and it was failing with following  message:

Task failed because "sgen.exe" was not found, or the correct Microsoft Windows SDK is not installed. The task is looking for "sgen.exe" in the "bin" subdirectory beneath the location specified in the InstallationFolder value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A. You may be able to solve the problem by doing one of the following: 1) Install the Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5. 2) Install Visual Studio 2008. 3) Manually set the above registry key to the correct location. 4) Pass the correct location into the "ToolPath" parameter of the task.

Reason:
This issue occurs because the default setting for the SSIS script task creates the serialization assembly. The serialization assembly requires files that may not be installed by SQL Server 2008 alone.

Solution:  Installing Windows SDK can resolve the issue, but I found following easier to follow with apparently no side effect.

Disable the Generate serialization assembly option. To do this, follow these steps:
  1. Click Start, point to Programs, point to Microsoft SQL Server 2008, and then click SQL Server Business Intelligence Development Studio.
  2. Open the project file or the solution file.
  3. In Solution Explorer, double-click the SSIS Package to open the Package Designer.
  4. Double-click Script Task in the Package Designer to open the Script Task Editor dialog box.
  5. Click Edit Script to open the Microsoft Visual Studio Tools for Applications (VSTA) IDE.
  6. In Project Explorer, right-click the project, and then click Properties.
  7. Click the Build tab. In the Output area, click Off in the Generate serialization assembly list.
  8. On the File menu, click Exit.