NFOP.dll вызывает ошибку на 64-битной ОС
У меня есть консольное приложение, которое использует NFOP.dll для создания PDF-документа. Он отлично работал в dev box, который является 32-битной операционной системой.
Когда я переместил его на другой сервер с 64-битной ОС, он дал мне следующую ошибку:
Не удалось загрузить файл или сборку 'nfop, Version=1.0.0.0, Culture= нейтральный, PublicKeyToken=null' или одну из ее зависимостей
Есть идеи, как это решить? Если это проблема с использованием NFOP.dll на 64-битной ОС, есть ли альтернативное решение?
Thnks
2 ответа
Выполните следующие шаги на 64-битной машине, чтобы создать DLL NFOP с целевой платформой (anycpu)
Загрузите и установите распространяемый пакет Microsoft Visual J#® 2.0 - второе издание (x64) по адресу: http://www.microsoft.com/download/en/details.aspx?id=15468
Загрузите код проекта NFOP по адресу: http://sourceforge.net/scm/?type=svn&group_id=65558
Откройте файл ApacheFop.Net.vjsproj из папки apachefop.net в загруженной базе кода в любом текстовом редакторе.
Изменить
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
в<Platform Condition=" '$(Platform)' == '' ">anycpu</Platform>
Изменить
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
в<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|anycpu' ">
Добавить
<PlatformTarget>anycpu</PlatformTarget>
узел к<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|anycpu' ">
узелСохраните файл проекта. (Если вы хотите построить в режиме выпуска, внесите эти изменения в группу свойств конфигурации выпуска)
Откройте командную строку VS
Перейдите в папку apachefop.net в загруженной базе кода.
Запустите следующую команду в командной строке:
msbuild ApacheFop.Net.vjsproj / t: перестроить /p: конфигурация = отладка
Вы получите файл apachefop.net.dll в папке \apachefop.net\bin\Debug
Вы можете использовать эту DLL для создания DLL NFOP, которая будет поддерживаться как в 32-битной, так и в 64-битной ОС. Надеюсь это поможет!!!
Ориентируйте свое приложение.NET явно на компиляцию x86, а не на AnyCPU. Похоже, что NFOP.dll является только 32-разрядным, который не будет загружен в 64-разрядном процессе, что в этом случае сделает AnyCPU.