Maybe try renaming the file to remove the ".x86" suffix and make sure that directory is in the PATH? e.g.: addToPath C:/full/path/to/dir/bin I'm looking at the sample code you sent now. It appears that the assembly "GRPCRemoteClient" is not signed with a strong name. This may have impact on the type resolution. The following appears to work: object create -verbose -alias "GRPCRemote.GRPCRemoteClient, GRPCRemoteClient, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" $host $port This uses an assembly qualified name. Using the above change and one additional change to the **assemblyResolve** procedure, I am able to get the wrapped script working here locally. Here is the modified **assemblyResolve** procedure: proc assemblyResolve { sender e } { # NOTE: The next [if] was added. If the assembly name being resolved # should NOT be handled by us, return null. if {[$e Name] in [list UnityEngine Xamarin.iOS Mono.Android]} then {return null} global dll_dir regexp {^([^,]+),.+$} [$e Name] -> name log "name = $name" set fileName [file join $dll_dir $name.dll] log "fileName=$fileName" set type [load_type $fileName] log "type=$type" return $type } If you like, I can send you the modified script via email; however, the above (two) changes are apparently all that was required so far.