4

Mise à jour d'une application VS2003 1.1 de Windows Forms vers VS2010 en une seule fois, nous avons également dû mettre à jour la version des rapports Crystal utilisée dans l'application.Déploiement d'une application de type "Un clic" avec Crystal Reports 13 pour les utilisateurs à accès limité?

Tout fonctionne parfaitement si l'utilisateur a un administrateur local. Malheureusement, la plupart de nos utilisateurs sont extrêmement bloqués et ne peuvent rien installer. Cela pose un problème pour l'installation des binaires CR13. Dans les paramètres cliquez une fois, j'ai marqué tous les CrystalDecisions. * Dlls comme Include/Required, mais ils ne sont pas publiés dans le dossier de déploiement, et donc pas copiés sur les machines des utilisateurs avec d'autres bibliothèques tierces. Cela signifie que l'application commence bien, mais dès qu'un utilisateur essaie d'exécuter un rapport qu'ils obtiennent l'erreur suivante:

************** Exception Text ************** 
System.IO.FileNotFoundException: Could not load file or assembly 'CrystalDecisions.Windows.Forms, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified. 
File name: 'CrystalDecisions.Windows.Forms, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' 

Même si elle est marquée comme Inclure/requis, ce fichier est en cours de déploiement. Je ne veux vraiment pas avoir à traquer tous les utilisateurs et à l'installer manuellement (nous n'avons pas la possibilité de faire un push de politique de groupe). Il y a quatre cristal dll nous utilisons:

  • CrystalDecisions.CrystalReports.Engine
  • CrystalDecisions.ReportSource
  • CrystalDecisions.Shared
  • CrystalDecisions.Windows.Forms

Parmi ceux-ci, seuls les le moteur est en train d'être déployé! Est-ce que quelqu'un sait pourquoi le clic-une fois ne déploie pas les autres (esp Windows Forms dll) et comment je peux le convaincre de?

merci!

edit: essayé de supprimer les références existantes à Crystal dll (qui pointait vers l'installation de Crystal sous "C: \ Program Files \ SAP BusinessObjects \ Crystal Reports pour .NET Framework 4.0 \ Common \ SAP BusinessObjects Enterprise XI 4.0 \ win32_x86 \ dotnet ", les copiant dans le projet et les ajoutant via l'onglet" browse ", mais ils n'étaient toujours pas déployés :(C'est presque comme s'ils avaient un drapeau pour dire qu'ils ne devraient pas être déployés, donc visual studio les ?? ne tient pas compte

Répondre

3

Je gère un important projet ClickOnce qui utilise aussi le moteur Crystal Reports pour générer des documents PDF.

Je crois que ce que vous essayez de faire est, techniquement, contre t Les conditions d'utilisation de Crystal Reports. À la place, vous devez demander aux utilisateurs d'installer la dernière version de l'environnement d'exécution de Crystal Reports distribuable en tant que condition préalable. Oui, je comprends que c'est un énorme inconvénient mais c'est la seule solution à ce problème.

Étiez-vous en train d'essayer d'installer l'environnement d'exécution CR en utilisant le prérequis ClickOnce ou avez-vous essayé de regrouper un programme d'installation avec votre application? Vous souhaiterez utiliser le dernier package d'installation ClickOnce disponible sur le site SAP à l'adresse this page. Je peux me tromper, mais je pense que vos utilisateurs peuvent être en mesure d'installer le moteur d'exécution sans privilèges d'administrateur si vous l'installez via le programme d'installation automatique ClickOnce pour les prérequis. D'après mon expérience, si vous déployez une application robuste qui doit avoir plusieurs prérequis installés sur l'application d'un utilisateur, quelqu'un avec des droits d'administrateur doit installer vos conditions préalables. Ce n'est pas toujours une exigence, mais cela peut sauver beaucoup de maux de tête à l'avenir.

+0

J'ai posté sur les forums BO CR et ils ont essentiellement dit que ce n'est pas possible, en raison de l'enregistrement COM etc. Je vais accepter votre réponse, car il est fondamentalement correct, il n'y a aucun moyen de faire un clic. Ma solution consiste à ajouter une connexion à l'application qui enregistre les machines qui l'exécutent, puis écrire un script qui va pousser l'exécution vers les utilisateurs. Plus douloureux que d'être en mesure d'inclure quelques DLL, mais cela fonctionne. merci! – matao

+1

http://forums.sdn.sap.com/thread.jspa?threadID=1981187&tstart=15 – matao