C #: не удалось загрузить файл или сборку 'OpenPop, версия = 2.0.4.369, культура = нейтральная, PublicKeyToken = null' или одна из ее зависимостей - PullRequest
3 голосов
/ 03 апреля 2012

Я пытаюсь использовать OpenPop.NET для доступа к учетной записи gmail, однако я получаю сообщение об ошибке ниже даже с кодом базового тестирования.

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

WRN: регистрация привязки сборки отключена.Чтобы включить ведение журнала ошибок привязки сборки, установите для параметра реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) значение 1. Примечание. С журналированием ошибок привязки сборки связано некоторое снижение производительности.Чтобы отключить эту функцию, удалите значение реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog].

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

Я пытаюсь сделать это в пакете служб SSIS в SQL Server BusinessIntelligence Development Studio 2008 на компьютере под управлением Windows 7 с платформой .NET Framework 3.5 и 4. В 3.5 встроены как библиотека OpenPop, так и задача сценария, которая ссылается на нее.Я исследовал это в течение нескольких дней, но не смог найти ничего, что могло бы это исправить.Я попытался перекомпилировать dll OpenPop из исходного кода и удалить и повторно добавить ссылку несколько раз.

Код, с которым я сейчас работаю, размещен ниже:

        Pop3Client client = new Pop3Client();

        try
        {
            client.Connect("pop.gmail.com", 995, true);

            try
            {
                client.Authenticate("user@domain.com", "mypassword");
                Console.WriteLine("Success");
                client.Disconnect();
            }
            catch
            {
                Console.WriteLine("Failed to authenticate");
                Dts.TaskResult = (int)ScriptResults.Failure;
                return;
            }
        }
        catch
        {
            Console.WriteLine("Failed to connect");
            Dts.TaskResult = (int)ScriptResults.Failure;
            return;
        }

        Dts.TaskResult = (int)ScriptResults.Success;

Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 10 апреля 2012

Я тоже столкнулся с этой проблемой, и решение на самом деле довольно простое. Вы должны установить ссылочную сборку в GAC сервера, на котором выполняется пакет.

1) Убедитесь, что сборка подписана, если вы создали свою сборку, подпишите ее.

2) Установите DLL в GAC, используя gacutil.exe из инструментов SDK Visual Studio. Для получения дополнительной информации см. Как: установить сборку в глобальный кэш сборок .

3) Ссылка на ту же DLL из вашей задачи сценария

Вуаля, теперь все должно работать идеально!

1 голос
/ 20 мая 2015

Установка вашей DLL в GAC (глобальный кеш сборок)

1) Командная строка Visual Studio => Запуск от имени администратора

2) gacutil / i "путь к файлу dll"

3) см. Сборку на C: \ Windows \ system32 \

Это также решит проблему отсутствия DLL или «Не удалось загрузить файл или сборку» в задаче «Сценарий SSIS»

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