我有控制台应用程序,它使用NFOP.dll生成PDF文档。它在开发盒中运行良好,这是一个32位操作系统。
当我将它移动到具有64位操作系统的另一台服务器时,它给了我以下错误:
无法加载文件或程序集'nfop,Version = 1.0.0.0, Culture = neutral,PublicKeyToken = null'或其依赖项之一
有关如何解决它的任何想法?如果这是在64位操作系统上使用NFOP.dll的问题,是否有替代解决方案?
Thnks
答案 0 :(得分:2)
在64位计算机上按照以下步骤构建具有平台目标(anycpu)的NFOP dll
从以下位置下载并安装Microsoft Visual J#®2.0可再发行组件包 - 第二版(x64):http://www.microsoft.com/download/en/details.aspx?id=15468
在任何文本编辑器的下载代码库中,从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位操作系统都支持该DLL。希望这会有所帮助!!!
答案 1 :(得分:1)
将您的.NET应用程序显式定位为x86编译而不是AnyCPU。看起来NFOP.dll只有32位,不能在64位进程中加载,这就是AnyCPU在这种情况下的做法。