Не удалось загрузить файл или сборку PDFsharp - PullRequest
0 голосов
/ 17 октября 2018

Это длинная ошибка, но я дам вам ключевые детали.Допустим, я выпустил приложение C #, включающее библиотеку PDFsharp, и у меня есть несколько функций, использующих их, и именно здесь я получаю сообщение об ошибке.

Я пытаюсь создать несколько PDF-файлов (через Crystal Report и экспортировать их в PDF)а затем объединить эти кратные в один.Ошибок пока нет.При объединении я использую функции PDFsharp, для пояснения приведу нижеприведенный код. Здесь есть сложная часть, код работает потрясающе, объединяет PDF-файлы и выполняет все, но только на моем ПК, я пытался передать приложение (.exe) кому-тоеще и заставив их работать на своем компьютере, он вернулся с ошибкой в ​​функции слияния.

Кроме того, просто к сведению: PDF-файлы создаются, только слияние является проблемой, то есть программа не может бытьне может найти нужные файлы для слияния, он ищет библиотеки PDFsharp, которые не может найти.Теперь ошибка не имеет смысла, потому что, насколько мне известно, когда приложение выпущено, оно связывает все библиотеки в себе, чтобы другие пользователи не могли их включать.Я также включаю другие библиотеки, которые не выдают никакой ошибки, поэтому мы можем заключить, что что-то не так с PDFsharp.

Ошибка: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'PdfSharp, Version= 1.32.3057.0, Культура = нейтральный, PublicKeyToken = f94615aa0424f9eb 'или одна из его зависимостей.

Еще одно замечание: я зарегистрировал все ошибки и попробовал привязки сборок, пулы приложений IIS, выпуск на разных процессорах ипочти все, так что, пожалуйста, придумайте что-нибудь работающее!

Вот мой код слияния (взят из другого источника):

using (PdfDocument targetDoc = new PdfDocument())
{
    foreach (string pdf in pdfs)
    {
        using (PdfDocument pdfDoc = PdfSharp.Pdf.IO.PdfReader.Open(pdf, 
               PdfSharp.Pdf.IO.PdfDocumentOpenMode.Import))
        {
            for (int i = 0; i < pdfDoc.PageCount; i++)
            {
                targetDoc.AddPage(pdfDoc.Pages[i]);
            }
        }
    }
    targetDoc.Save(targetPath);
}

1 Ответ

0 голосов
/ 18 октября 2018

Вам необходимо отправить файл PdfSharp.dll вместе с вашим .EXE-файлом (и всеми ссылками на сборки PdfSharp.dll).Ваш .EXE не включает в себя код из других сборок, на которые вы ссылаетесь во время компиляции, поэтому эти другие сборки должны присутствовать во время выполнения.

Кстати: вы используете версию 1.32 примерно с 2013 г.все исправления ошибок за последние пять лет.

Теперь эта ошибка не имеет смысла, потому что, насколько мне известно, когда приложение выпущено, оно связывает все библиотеки в себе, так что другие пользователи не могутНе надо их включать.

Это ново для меня.Есть ссылки на эту информацию?Я предполагаю, что сообщение об ошибке правильное, а ваше предположение неверно ...
То, что верно для библиотек LIB для C / C ++, не верно для файлов Windows DLL.DLL загружаются во время выполнения и поэтому должны присутствовать на компьютере, на котором выполняется приложение.

...