Ошибка FileNotFoundException при вызове ActiveX в задаче сценария служб SSIS - PullRequest
0 голосов
/ 28 августа 2009

Мне нужно вызвать ActiveX в моем пакете служб SSIS, поэтому я использую задачу сценария и пишу следующий сценарий C #:

public void Main()
{
    clsAptFdbReader objFdbReader = new clsAptFdbReader("UnitedStates20000830.fdb");
    objFdbReader.OpenFdb(false);
    Dts.TaskResult = (int)ScriptResults.Success;
}

Получите ошибку:

Ошибка: System.Reflection.TargetInvocationException: Исключение было брошено цель вызова. ---> System.IO.FileNotFoundException: может не загружать файл или сборку «Interop.APTFDBReader, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null 'или один из его зависимостей. Система не может найти указанный файл Имя файла: «Interop.APTFDBReader, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null 'в ST_320325ad8e2543f09ee688d809f58ee7.csproj.ScriptMain.Main ()

=== Информация о состоянии предварительной привязки === LOG: Пользователь = SHINETECHCHINA \ xugy LOG: DisplayName = Interop.APTFDBReader, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null (полностью указано) LOG: Appbase = file: /// C: / Program Файлы / Microsoft SQL Сервер / 100 / DTS / binn / LOG: начальный PrivatePath = NULL Вызывающая сборка: (Не известно). === LOG: эта привязка начинается в контексте загрузки по умолчанию. LOG: Использование приложения файл конфигурации: C: \ Program Файлы \ Microsoft SQL Server \ 100 \ DTS \ Binn \ DtsDebugHost.exe.Config LOG: использование файла конфигурации машины от C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Config \ machine.config. LOG: политика не применяется к ссылка в это время (частная, пользовательский, частичный или на основе местоположения сборка привязана). LOG: Попытка загрузка нового файла URL: /// C: / Program Файлы / Microsoft SQL Сервер / 100 / DTS / Binn / Interop.APTFDBReader.DLL. LOG: попытка загрузки нового URL file: /// C: / Program Files / Microsoft SQL Сервер / 100 / DTS / Binn / Interop.APTFDBReader / Interop.APTFDBReader.DLL. LOG: попытка загрузки нового URL file: /// C: / Program Files / Microsoft SQL Сервер / 100 / DTS / Binn / Interop.APTFDBReader.EXE. LOG: попытка загрузки нового URL file: /// C: / Program Files / Microsoft SQL Сервер / 100 / DTS / Binn / Interop.APTFDBReader / Interop.APTFDBReader.EXE.

--- конец внутреннего стека исключений след --- в System.RuntimeMethodHandle._InvokeMethodFast (Объект target, Object [] аргументы, SignatureStruct & sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) в System.RuntimeMethodHandle.InvokeMethodFast (Объект цель, аргументы объекта [], подпись sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) в System.Reflection.RuntimeMethodInfo.Invoke (Объект obj, BindingFlags invokeAttr, Binder связыватель, параметры Object [], КультураИнфо, Булевская культура skipVisibilityChecks) в System.Reflection.RuntimeMethodInfo.Invoke (Объект obj, BindingFlags invokeAttr, Binder связыватель, параметры Object [], КультураИнфо культура) на System.RuntimeType.InvokeMember (String имя, BindingFlags bindingFlags, Переплетчик, Цель объекта, Объект [] provideArgs, ParameterModifier [] модификаторы, CultureInfo culture, Строка [] namedParams) в System.Type.InvokeMember (имя строки, BindingFlags invokeAttr, Binder связыватель, цель объекта, аргументы объекта [], КультураИнфо культура) на Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript ()

1 Ответ

0 голосов
/ 06 сентября 2009

Вы можете сгенерировать взаимодействие как часть вашей сборки, используя TLBIMP.EXE, и дать ему аргументы для построения строгого имени.

Я не уверен, разумно ли устанавливать это взаимодействие в GAC, если оно основано на стороннем COM-сервере?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...