2011-08-16 5 views
1

J'ai une application de console qui utilise le NFOP.dll pour générer un document PDF. Cela a bien fonctionné dans la boîte de dev, qui est un système d'exploitation 32 bits.NFOP.dll provoque une erreur sur le système d'exploitation 64 bits

Quand je l'ai déplacé vers un autre serveur qui est d'avoir un système d'exploitation 64 bits, il m'a donné l'erreur suivante:

Could not load file or assembly 'nfop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies

Toute idée sur la façon de le résoudre? Si c'est un problème avec l'utilisation de NFOP.dll sur un OS 64 bits, existe-t-il une solution alternative?

Thnks

Répondre

2

Suivez les étapes ci-dessous sur une machine 64 bits pour construire une dll NFop avec l'objectif de la plate-forme (de anycpu)

  1. Téléchargez et installez le redistribuable Visual J # Microsoft ® 2.0 Package - Deuxième édition (x64) de: http://www.microsoft.com/download/en/details.aspx?id=15468

  2. Télécharger le code de projet NFop de: http://sourceforge.net/scm/?type=svn&group_id=65558

  3. Ouvrez le fichier ApacheFop.Net.vjsproj de apachefop.net dossier dans la base de code téléchargé dans l'un des l'éditeur de texte.

  4. Modifier le <Platform Condition=" '$(Platform)' == '' ">x86</Platform>-<Platform Condition=" '$(Platform)' == '' ">anycpu</Platform>

  5. Modifier le <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> à <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|anycpu' ">

  6. Ajouter le nœud <PlatformTarget>anycpu</PlatformTarget> au nœud <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|anycpu' ">

  7. Enregistrez le fichier de projet. (Si vous voulez construire en mode release, effectuer ces modifications au groupe de propriété de configuration de libération)

  8. commande Ouvrir VS invite

  9. Accédez au dossier apachefop.net dans la base de code téléchargé

  10. exécuter la commande suivante dans la ligne de commande:

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

Vous obtiendrez le apachefop.net.dll dans le répertoire \ apachefop.net \ bin \ Debug

Vous pouvez utiliser cette dll pour construire la dll NFop, qui sera pris en charge dans les deux OS 32 bits et 64 bits. J'espère que cela t'aides!!!

1

Ciblez votre application .NET explicitement comme x86 compilation plutôt que AnyCPU. Il semble NFOP.dll est 32 bits seulement, qui ne sera pas chargé dans un processus 64 bits, ce qui est ce que fera AnyCPU dans ce cas.

+0

Merci pour la réponse rapide @Jesse, mais nous utilisons d'autres dlls tiers dans notre application, qui fonctionnera en OS 64 bits. Donc, si nous ciblons notre application sur x86, cela causera des erreurs avec ces autres DLL. – neo

+0

Ces DLL tierces sont-elles également des assemblys .NET? Si c'est le cas, vous pouvez faire un 'CorFlags.exe 3rdparty.dll/32BIT +' pour obtenir tous les x86. –

Questions connexes