TuesPechkin impossible de charger la DLL 'wkhtmltox.dll'
J'ai été en utilisant TuesPechkin pour un certain temps maintenant, et aujourd'hui je suis allé pour mettre à jour le package nuget pour la nouvelle version 2.0.0+ et a remarqué que l'Usine.Créer() n'est plus résolu, alors je suis allé lire sur le GitHub les modifications apportées et a remarqué qu'il s'attend maintenant le chemin de la dll?
IConverter converter =
new ThreadSafeConverter(
new PdfToolset(
new StaticDeployment(DLL_FOLDER_PATH)));
Depuis quelques heures, j'ai essayé presque tous les chemins que je pense, "\bin", "\app_data", "\app_start", etc et je n'arrive pas à trouver ou à comprendre ce qu'elle veut pour le chemin d'accès et ce dll?
Je peux voir la TuesPechkin dll dans mon dossier bin et il a été le premier chemin, j'ai essayé, mais j'ai eu l'erreur suivante:
Informations supplémentaires: Impossible de charger la DLL 'wkhtmltox.dll":
module spécifié est introuvable. (Exception de HRESULT:
0x8007007E)
Où est cette dll et maintenant que je peux l'obtenir que la bibliothèque ne semble pas à la contenir, j'ai essayé d'installer le TuesPechkin.Wkhtmltox.Win32 paquet, mais la dll est encore nulle part pour être trouvée. Aussi, je me sers de ce dans une asp.net projet de site web, donc je suppose qu'en utilisant les éléments suivants doivent travailler pour obtenir le chemin d'accès, droit?
var path = HttpContext.Current.Server.MapPath(@"~\bin\TuesPechkin.dll");
Plus d'informations: https://github.com/tuespetre/TuesPechkin/issues/57
OriginalL'auteur devfunkd | 2015-01-11
Vous devez vous connecter pour publier un commentaire.
La Tuespechkin a un fichier zip comme une ressource dans la Win32 et Win64 incorporé des forfaits pour les 'wkhtmltox.dll' fichier.
Ce qu'il fait lorsque vous utilisez Win32 ou Win64 Intégré paquet est dézippe le fichier et le place dans le répertoire que vous spécifiez.
J'ai mis une copie de la wkhtmltox dll à la portion racine de mon application web directory et le pointage de l'DLL_FOLDER_PATH à l'aide du serveur physique chemin de mon application web pour l'obtenir.
Selon l'auteur, vous devez définir le convertisseur dans un champ statique pour de meilleurs résultats.
- Je le faire, mais le convertisseur à null quand j'ai fini de l'utiliser, et qui semble fonctionner.
Tuespechkin est wrapper pour la wmkhtmlox fichier dll.
Le fichier original est écrit en C++ et ne sera donc pas automatiquement être utilisable en C# ou VB.NET ou l'un des autres domaines de code.
L'Tuespechkin.dll le fichier NE contient PAS de copie de 'wkhtmltox.dll'. Vous devez utiliser l'une de l'autre embedded déploiement des modules ou installer une copie de l' 'wkhtmltox.dll" dans votre application web après l'avoir téléchargé sur internet. Qu'est ce que je fais, et il semble très bien fonctionner.
Je suis à l'utilisation de Team Foundation Server, et tente de compiler le code après l'utilisation de la Tuespechkin routines échoue la première fois, parce que les wkhtmltox.dll' le fichier est verrouillé, mais tout ce que vous avez à faire est de simplement réessayer de votre construction et il faudra passer par.
J'ai eu des problèmes avec la version 32 bits de routine ne fonctionne pas dans un environnement 64 bits et 64 bits de l'environnement n'étant pas vérifiable sur localhost. Je suis allé avec la solution m'est venu après avoir examiné le code source pour Tuespechkin et Win32 et Win64 incorporé des packages de déploiement.
Il fonctionne bien aussi longtemps que vous spécifiez une url pour l'entrée, plutôt que du html brut.
L'ancienne paquet n'a pas de rendu css très bien.
Si vous utilisez une impression.aspx routine, vous pouvez créer l'url comme un décalage à partir de votre url principale.
Je n'ai pas le code source, je suis en utilisant avec moi à ce point pour compenser à votre url de base de votre application web, mais il est tout simplement une émanation de HttpRequest.
Vous devez utiliser le chemin d'accès physique pour trouver l' .dll, mais vous pouvez utiliser un chemin web pour l'impression de routine.
J'espère que cela répond à votre question un peu.
J'ai fini de regarder à travers les TuesPechkin pensions et à l'intérieur de la Teste de projet, j'ai vu la dll télécharger et de l'ajouter comme je l'ai dit ci-dessus pour le projet. Je me demande encore pourquoi ce changement? Dans la version plus ancienne, vous n'avez pas besoin de s'embêter avec n'importe quelle DLL chemin d'accès au dossier, il a juste travaillé. 🙂 De toute façon j'ai réussi à comprendre, mais la documentation autour de l'ensemble de la DLL du dossier pourrait être améliorée. Merci beaucoup pour l'explication de ce en outre, il a été utile!
Je crois qu'il est fait de cette façon parce que le fichier dll n'est pas directement référencé n'importe où dans le code. Lorsque le fichier est compilé, le fichier dll ne sera pas nécessairement avec elle. En l'incluant comme une ressource de fichier, puis de le décompresser, l'auteur est de s'assurer que le codefile sera localisable. Depuis je ne pouvait vraiment pas être la 32-bits intégrée de déploiement du module de compiler sur le serveur TFS système m'a l'aide de même avec les 32 bits de l'application de la piscine activé, j'ai utilisé mon propre solution de contournement.
OriginalL'auteur Timothy Dooling
J'ai installé TuesPechkin.Wkhtmltox.Win64 package Nuget et utilisé le code suivant dans un singleton:
L'application web doit être exécuté en x64, sinon vous obtiendrez un message d'erreur en essayant de charger une x64 assemblée dans un environnement x86. Je présume que vous avez à choisir x64 ou x86 au moment de la conception et de l'utilisation du package nuget, il serait plus agréable de choisir ce dans le web.config.
EDIT: Le code ci-dessus a échoué sur un serveur avec exactement le même message que le vôtre - c'était en raison de ne pas l'avoir installé VC++ 2013. Ainsi, le nouveau code est en cours d'exécution x86 comme suit
Non, je n'ai pas réussi à passer plus de temps sur ce. Je suis également garder un oeil sur ce pull request github.com/tuespetre/TuesPechkin/pull/90
J'ai créé une version pour AnyCPU en tant que bien, mais ce n'est pas ce tuespetre est à la recherche pour le moment. Ma version juste choisit le wkhtmltopdf DLL basé sur l'architecture du système actuel. Il fonctionne pour moi, mais il veut une AnyCPU de la bibliothèque qui fait référence à la fois 32 bits et 64 bits des bibliothèques qu'il a créé. Je suppose que c'est donc que les fichiers DLL pour wkhtmltopdf ne sont pas téléchargés dans plus d'un projet, ce qui serait plus facile à mettre à jour. Du sens. Je suis en train de créer une nouvelle solution qui satisfait à ces critères quand j'aurais le temps. Merci pour la réponse.
L'installation de Visual C++ Redistribuable Visual Studio 2013 résolu l'erreur pour moi. microsoft.com/en-us/download/details.aspx?id=40784
J'ai aussi résolu par l'installation de Visual C++ Redistribuable Visual Studio 2013 !
OriginalL'auteur Kaido
Si vous obtenez cette erreur -> impossible de charger le fichier ou l'assembly 'TuesPechkin.Wkhtmltox.Win64' ou une de ses dépendances. Une tentative a été faite pour charger un programme avec un format incorrect.
Dans Visual Studio Aller à
Outils -> Options -> les Projets et les Solutions -> Projets Web -> Utiliser la version 64 bits de IIS Express pour des sites web et des projets.
L'erreur signifie que vous tentez de charger la version 64 bits dans un environnement 32 bits. Vous devez être défini pour 64 bits pour utiliser la version 64 bits, mais vous ne pouvez pas vraiment le tester sur localhost, sauf si vous pouvez aussi le mettre à 64 bits.
OriginalL'auteur Prateek-Systematix
Dans mon cas, je suis de déployer sur un 64 bits VPS puis j'ai eu cette erreur. J'ai résolu le problème en installant le wkhtmltopdf que j'ai téléchargé à partir de http://wkhtmltopdf.org/downloads.html. J'ai choisi la version 32 bits de l'installateur.
OriginalL'auteur rajeemcariazo
Dans mon cas, j'ai résolu le problème en installant le Wkhtmltox pour win32 https://www.nuget.org/packages/TuesPechkin.Wkhtmltox.Win32/
OriginalL'auteur Hoàng Nghĩa
Si vous ne souhaitez pas exécuter le programme d'installation pour wkhtmltox juste pour obtenir la dll, vous pouvez effectuer les opérations suivantes:
@Timothée suggère, si vous utilisez la version embarquée de wkhtmltox.dll de TuesPechkin, il décompresse le fichier et le placer dans un répertoire temporaire. J'ai copié cette dll et référencé avec le
StaticDeployment
option sans aucun problème.De trouver l'emplacement exact, j'ai simplement utilisé le Moniteur de Processus (procmon.exe). Pour moi, c'était
C:\Windows\Temp\-169958574\8\0.12.2.1\wkhtmltox.dll
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin")
OriginalL'auteur emragins