NFOP.dll вызывает ошибку на 64-битной ОС - PullRequest
1 голос
/ 16 августа 2011

У меня есть консольное приложение, которое использует NFOP.dll для создания PDF-документа. Он отлично работал в 32-разрядной операционной системе dev box.

Когда я переместил его на другой сервер с 64-битной ОС, он выдал следующую ошибку:

Не удалось загрузить файл или сборку 'nfop, версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null 'или одна из ее зависимостей

Есть идеи, как ее решить? Если это проблема с использованием NFOP.dll на 64-битной ОС, есть ли альтернативное решение?

Thnks

Ответы [ 2 ]

2 голосов
/ 18 августа 2011

Выполните следующие действия на 64-битной машине для создания библиотеки NFOP с целевой платформой (anycpu)

  1. Загрузите и установите распространяемый пакет Microsoft Visual J # ® 2.0 - второе издание (x64)) из: http://www.microsoft.com/download/en/details.aspx?id=15468

  2. Загрузите код проекта NFOP из: http://sourceforge.net/scm/?type=svn&group_id=65558

  3. Откройте файл ApacheFop.Net.vjsproj из папки apachefop.net в загруженномкод базы в любом текстовом редакторе.

  4. Измените <Platform Condition=" '$(Platform)' == '' ">x86</Platform> на <Platform Condition=" '$(Platform)' == '' ">anycpu</Platform>

  5. Измените <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> на <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|anycpu' ">

  6. Добавьте узел <PlatformTarget>anycpu</PlatformTarget> к узлу <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|anycpu' ">

  7. Сохраните файл проекта.(Если вы хотите выполнить сборку в режиме выпуска, внесите эти изменения в группу свойств конфигурации выпуска)

  8. Открыть командную строку VS

  9. Перейдите кпапка apachefop.net в загруженной базе кодов

  10. В командной строке выполните следующую команду:

msbuild ApacheFop.Net.vjsproj /t: rebuild / p: Configuration = Debug

. Вы получите файл apachefop.net.dll в папке \ apachefop.net \ bin \ Debug

. Вы можете использовать эту dll для создания NFOPDLL, которая будет поддерживаться как в 32-битной, так и в 64-битной ОС.Надеюсь, это поможет !!!

1 голос
/ 16 августа 2011

Ориентируйте свое приложение .NET явно на компиляцию x86, а не на AnyCPU. Похоже, что NFOP.dll является только 32-разрядным, который не будет загружен в 64-разрядном процессе, что в этом случае сделает AnyCPU.

...