Differences
This shows you the differences between the selected revisions of the page.
2014-06-23 | 2015-06-24 | ||
deploying (martin) | Adding information about assembly location redirection (tsaukpaetra) | ||
Line 19: | Line 19: | ||
===== Deploying WinSCP .NET Assembly ===== | ===== Deploying WinSCP .NET Assembly ===== | ||
- | When deploying your SSIS package, WinSCP .NET assembly needs to be [[library_install#gac|installed to GAC]] to be accessible. | + | When deploying your SSIS package, WinSCP .NET assembly should be [[library_install#gac|installed to GAC]] to be accessible. |
+ | It is possible to redirect the assembly elsewhere, however the location must be accessible by the user that the package is running as, and a Static Constructor handler needs to be attached inside the script (See [[http://blogs.msdn.com/b/dbrowne/archive/2014/06/25/how-to-load-an-assembly-in-a-ssis-script-task-that-isn-t-in-the-gac.aspx|This MSDC blog article]] for more detailed information). | ||
+ | |||
+ | Some sample code (Add inside the class): | ||
+ | public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase | ||
+ | { | ||
+ | static ScriptMain() | ||
+ | { | ||
+ | AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); | ||
+ | //The rest of your code | ||
+ | } | ||
+ | static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) | ||
+ | { | ||
+ | if (args.Name.Contains("winscpnet.dll")) | ||
+ | { | ||
+ | string path = @"c:\temp\"; | ||
+ | return System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(path, "winscpnet.dll")); | ||
+ | } | ||
+ | return null; | ||
+ | } | ||
+ | } | ||
===== [[example]] Example C# Script Task Code ===== | ===== [[example]] Example C# Script Task Code ===== |