我有控制台应用程序,它使用 NFOP.dll 生成 PDF 文档。它在开发盒中运行良好,这是一个 32 位操作系统。
当我将它移动到另一台具有 64 位操作系统的服务器时,它给了我以下错误:
无法加载文件或程序集 'nfop,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null' 或其依赖项之一
关于如何解决它的任何想法?如果这是在 64 位操作系统上使用 NFOP.dll 的问题,是否有替代解决方案?
谢谢
在 64 位机器上按照以下步骤构建具有平台目标 (anycpu) 的 NFOP dll
从以下网址下载并安装 Microsoft Visual J#® 2.0 Redistributable Package – Second Edition (x64):http ://www.microsoft.com/download/en/details.aspx?id=15468
从以下网址下载 NFOP 项目代码:http: //sourceforge.net/scm/ ?type=svn&group_id=65558
在任何文本编辑器中从下载的代码库中的 apachefop.net 文件夹中打开 ApacheFop.Net.vjsproj 文件。
更改<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:rebuild /p:Configuration=Debug
您将在 \apachefop.net\bin\Debug 文件夹中获得 apachefop.net.dll
您可以使用此 dll 构建 NFOP dll,它将在 32 位和 64 位操作系统中受支持。希望这可以帮助!!!
将您的 .NET 应用程序明确定位为 x86 编译而不是 AnyCPU。看起来 NFOP.dll 只是 32 位的,不会在 64 位进程中加载,这就是 AnyCPU 在这种情况下会做的事情。