In the child packages, I have a script task that sets the version number into a variable. Nothing big, 1 statement:
Dts.Variables.Item("User::Version").Value = Dts.Variables.Item("System::VersionMajor").Value.ToString() & _
"." & Dts.Variables.Item("System::VersionMinor").Value.ToString() & _
"." & Dts.Variables.Item("System::VersionBuild").Value.ToString()
So I created a "template" package that had my basic tasks in it, and started each child package from this template.
Everything worked great on my laptop.
Deployed to our 64-bit production platform and I get the following error when running the package:
Precompiled script failed to load. The computer that is running the Script Task does not have a compiler capable of recompiling the script. To recompile the script, see the Microsoft Knowledge Base article, KB931846 (http://go.microsoft.com/fwlink/?LinkId=81885).Naturally I follow the link in the error, after cleaning up the water that I spewed from the surprise I got from a very detailed error message in SSIS.
It did not apply to me... I had SQL Server SP2 installed. I even re-installed after reading it, just to make sure. Did not fix it.
Found this forum thread: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=591709&SiteID=1
Read thru it... Had NO script tasks set to False for pre-compile.
After looking thru my packages, confirming Precompile was set to True, I had an epiphany...
Since I started from a template, I bet the script tasks were NOT being compiled, since I never opened them.
So I went thru all 27 packages, opening up each script task (Control Flow) AND component (Data Flow), and then the script window. Closed the script window, and pressed ok on the script task window.
Re-built and deployed... tested OK!
So, if you use a "template" package with a script task or component, make sure you open the actual script screen and close it again to force a re-compile.