1

我有控制台应用程序,它使用 NFOP.dll 生成 PDF 文档。它在开发盒中运行良好,这是一个 32 位操作系统。

当我将它移动到另一台具有 64 位操作系统的服务器时,它给了我以下错误:

无法加载文件或程序集 'nfop,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null' 或其依赖项之一

关于如何解决它的任何想法?如果这是在 64 位操作系统上使用 NFOP.dll 的问题,是否有替代解决方案?

谢谢

4

2 回答 2

2

在 64 位机器上按照以下步骤构建具有平台目标 (anycpu) 的 NFOP dll

  1. 从以下网址下载并安装 Microsoft Visual J#® 2.0 Redistributable Package – Second Edition (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 文件夹中打开 ApacheFop.Net.vjsproj 文件。

  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\bin\Debug 文件夹中获得 apachefop.net.dll

您可以使用此 dll 构建 NFOP dll,它将在 32 位和 64 位操作系统中受支持。希望这可以帮助!!!

于 2011-08-18T06:07:44.423 回答
1

将您的 .NET 应用程序明确定位为 x86 编译而不是 AnyCPU。看起来 NFOP.dll 只是 32 位的,不会在 64 位进程中加载​​,这就是 AnyCPU 在这种情况下会做的事情。

于 2011-08-16T15:59:59.697 回答