While using script Functoids to call a method in an external assembly, care should be taken with the Assembly version and PublicKeyToken.
These values will be hardcoded in the map for that particular script functoid.
For eg: as given below.
<Script Language=”ExternalAssembly” Assembly=”MyAssembly, Version=126.96.36.199, Culture=neutral, PublicKeyToken=352635678e269c8da” Function=”Insert” AssemblyPath=”..\..\bin\Debug\MyAssembly.dll” />
If the source dll version or PublicKeyToken is modified, script functoid canonot automatically refere to the new version of the dll and it still refers to the old version of the dll.
In this situation either of the below approaches should be followed to avoid Transformation Failure.
- Make sure that the old version of the dll is available in the GAC.
- Modify the script functoid to refer to a new version of the dll.
This can be done in 2 ways.
i) Modify each script funtoid to point to a new assembly.
ii) If you have many scripting Functoid using the same assembly, then Right Click on the Map and open with XML Editor. Search for the assembly and update the Version.
Post your comments if any one has an alternate solution.