Le type initialiseur pour ' decisions cristallines.CrystalReports.Moteur.ReportDocument ' a fait une exception

je déploie une application de bureau à mes clients qui utilise L'API Crystal Reports pour afficher et imprimer des formulaires. Je construis mon installateur en utilisant InstallShield 2012. J'ai également inclus le cadre.net 4.0 avec tous les assemblages de cristaux. J'ai 2 (un peu connexes) concerne:

1) Chaque fois que j'ai essayé d'exécuter l'application sur la machine cliente, j'obtiens l'erreur suivante:

The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' 
      threw an exception.

Je n'ai aucune idée de ce que j'oublie ici. CrystalDecisions.CrystalReports.Engine dll est être enregistré correctement dans le GAC, comme le sont environ 10 autres ensembles cristallins.

2) j'ai posé cette question sur les forums SAP, et on m'a dit que j'avais besoin d'inclure le Framework .net 2.0 avec le Framework .net 4.0. J'ai essayé d'inclure le .net 2.0 redistribuable dans mon paquet d'installation, mais l'installateur ne l'installe pas. Est-ce que l'installateur voit que j'ai installé 4.0, donc il saute l'installation 2.0?

24
demandé sur gwin003 2013-05-21 00:57:33
la source

16 ответов

quand un constructeur statique lance une exception, elle est enveloppée dans un TypeInitializationException. Vous devez vérifier l'exception de l'objet InnerException propriété pour voir l'exception réelle.

dans un environnement de mise en scène / production (où vous n'avez pas Visual Studio installé), vous aurez besoin de:

  1. tracer/Log l'exception et son InnerException (récursivement): Ajouter un gestionnaire d'événements au AppDomain.UnhandledException événement, et de mettre votre enregistrement/traçage code. Utilisez System.Diagnostics.Debug.WriteLine pour tracing, ou un logger (log4net, ETW). DbgView (un outil Sysinternals) peut être utilisé pour afficher le débogage.WriteLine trace.
  2. utilisez un débogueur de production (tel que WinDbg ou NTSD) pour diagnostiquer l'exception.
  3. utilisez le débogage à distance de Visual Studio pour diagnostiquer l'exception (vous permettant de déboguer le code sur l'ordinateur cible à partir de votre propre ordinateur de développement).
9
répondu M.A. Hanin 2013-05-21 03:13:51
la source

Voici ce qui a fonctionné pour moi:

si vous installez sur une machine 64 bits, assurez-vous que les propriétés de l'application sous L'onglet Build ont "N'importe quel CPU" comme cible de la plate-forme, et décochez la case pour "Prefer 32-bit" Si vous avez l'option. Crystal is très touche environ 32/64 assemblages de bits, et fait quelques hypothèses assez contre-intuitives qui sont très difficiles à résoudre.

14
répondu Jeremy Holovacs 2013-06-10 19:18:08
la source

j'ai eu un message similaire et après plusieurs recherches en ligne et avoir fait toutes les suggestions, rien n'a aidé. J'ai enfin trouvé la solution. Dans mon serveur IIS, sous l'option advance pool d'applications, il y a une option pour "Enable 32-Bit Applications" - qui a été changée de false à true et après redémarrage du serveur IIS, mon programme a commencé à générer des fichiers pdf.

6
répondu shahk26 2015-07-23 21:42:35
la source

vérifiez les propriétés de votre projectm la cible de la plate-forme. Installez la version correspondante des rapports Crystal:

To x86 > CRforVS_redist_install_32bit
To x64 > CRforVS_redist_install_64bit
5
répondu tyrodeveloper 2016-03-29 08:57:41
la source

Pour une journée complète, j'ai cherché en ligne et j'ai trouvé une solution sur mon propre. Le même scénario, l'application fonctionne très bien dans developer machine mais lorsqu'elle est déployée il lance l'exception "crystaldecisions.crystalreports.moteur.reportdocument a fait une exception" Details: sys.io.filenotfoundexcep Crystal Decisions.reportappserver.la version commlayer 13.0.2000 est manquante

mon IDE: MS VS 2010 Ultimate, CR V13.0.10

Solution:

  1. j'ai mis x86 pour mon application, puis j'ai défini x64 pour mon application setup

  2. condition préalable: j'ai placé le fichier CRRUNTIME_32BIT_13_0_10 supportant L'exécution CRTIME.msi, CRRuntime_64bit_13_0_10.msi dans le répertoire suivant C:\Program fichiers (x86)\Microsoft SDKs\Windows\v7.0a\Bootstrapper\Packages\Crystal Reports for .net Framework 4.0

  3. inclure le fichier de fusion du module au projet de configuration. Voici la version n'est pas grave, parce que j'utilise 13.0.10 doux, 13.0.16 fichier du module de fusion Fichier I inclus: CRRuntime_13_0_16.MSM Ce fichier se trouve parmi les fichiers msm.

lors de l'installation de ce module de fusion ajoutera la dll nécessaire dans le dir suivant C:\Program fichiers (x86)\SAP BusinessObjects\Crystal Reports for .net Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet

la version de fichier dll ne causera aucun problème.

dans votre machine de développement vous le confirmez de même.

j'ai besoin de points de réputation, si cette réponse est utile de bien vouloir marquer qu'il est utile(+1)

2
répondu Pranesh Janarthanan 2016-02-07 16:50:03
la source

L'exception interne de bug dit impossible de charger le fichier ou l'assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304'

modifier le réglage D'AppPool False activer l'Application 32 bits résolu le problème

2
répondu user3192640 2016-04-25 08:23:39
la source

comme "M. A. Hanin" dit ci-dessus, il peut causé par un InnerException comme ceci:

"Unrecognized configuration section userSettings. (C:\Users\Pourakbar.h\AppData\Local\Accounting\Accounting.vshost.exe_Url_a4h1gnabohiu4wgiejk0d21rc2kbwr4g.0.0.0\user.config line 3)"

et j'ai supprimé le dossier: C:\Users\Pourakbar.h\AppData\Local\Accounting\Accounting.vshost.exe_Url_a4h1gnabohiu4wgiejk0d21rc2kbwr4g de mon ordinateur et ça a marché pour moi!

1
répondu Hussein PK 2013-10-22 19:17:50
la source

j'ai eu une erreur similaire récemment avec la log4net erreur:

ne pouvait pas charger le fichier ou l'assemblage 'log4net, Version = 1.2.10.0, Culture=neutral, Publicickeytoken=692fbea5521e1304'

C'était sur une machine 64 bits, mais j'avais installé le 32bit runtime.

S'assurer que la construction visait seulement x86 a fonctionné pour moi.

1
répondu ScottC 2018-04-09 15:32:04
la source

Je n'obtenais pas l'erreur sur les machines 32-bit mais était sur 64-bit donc j'ai changé la plate-forme cible de x86 à N'importe quel CPU et il a résolu le problème.

0
répondu Rob King 2013-08-28 13:25:08
la source

The type initializer for CrystalDecisions.CrystalReports.Engine.ReportDocument lançait une exception.

j'ai changé la plateforme cible de x86Any CPU et il a résolu le problème.

0
répondu Faheem 2015-02-03 11:03:58
la source

j'ai un problème avec le type initialiseur.. mon fichier de configuration l'a résolu..

j'ai oublié de disposer d'un élément de connexion comme ceci

"connectionStrings" "/connectionStrings" peut-être que ça dépend de ce que vous avez fait dans un code. mon erreur est je ne peux pas ouvrir une classe à cause de cet élément de connexion.

0
répondu Antonio Cabilos 2015-06-09 11:04:44
la source
  1. Télécharger la liste 2005 ou 2008 (qui est votre outil) ou copier à partir de C:\Program fichiers\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\CrystalReports

  2. Télécharger le c++ redist 2005 ou 2008(qui est votre outil)

  3. installez les deux et redémarrez votre système

  4. Problème résolu.

0
répondu user1970708 2016-07-22 17:47:12
la source

Ceci est dû au manque de capacité .... Si vous voyez L'Exception intérieure, vous verrez ce message

"Access is denied.
Access to speech functionality requires ID_CAP_SPEECH_RECOGNITION to be defined in the manifest."

Donc, pour se débarrasser de cette exception. activez la capacité de reconnaissance vocale à partir du fichier manifeste.

j'ai eu le même problème, et Il a résolu mon Problème. :)

0
répondu Zia Ur Rahman 2016-10-18 16:50:14
la source

ce qui a fait l'astuce pour moi était de changer la machine cible de "N'importe quel CPU" à "x64" ou peut-être dans votre cas "x86" selon l'architecture de votre machine cible. Je voudrais d'abord essayer cela avant de passer à une solution plus complexe qui indique un problème plus complexe.

0
répondu Alexander Zarate 2018-01-30 02:45:26
la source

si vous utilisez visual studio , activez la propriété build "Prefer 32-bit". voir l'image ci-dessous.

enter image description here

0
répondu Ravinda lakshan 2018-04-24 12:45:56
la source

j'ai fait face au même problème. La plateforme cible était N'importe quel CPU dans mon cas. Mais la case "Prefer-32Bit" a été cochée.. En décochant la même résolu le problème.

-2
répondu Nitika Ish Goel 2016-01-06 13:56:08
la source