Question

Dans une solution VS2010 j'ai un fichier license.licx qui contient:

DataDynamics.ActiveReports.ActiveReport, ActiveReports6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Web.WebViewer, ActiveReports.Web, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Export.Pdf.PdfExport, ActiveReports.PdfExport, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Design.Designer, ActiveReports.Design6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Viewer.Viewer, ActiveReports.Viewer6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff

Si je construis la solution sur une machine qui a une licence pour ActiveReport alors tout va bien. Si je construis la solution sur une machine qui ne dispose pas d'une licence pour ActiveReport je reçois:

Erreur 1 'Impossible de charger le fichier ou l'assembly' ActiveReports6, Version = 6.1.2814.0, Culture = neutral, PublicKeyToken = cc4967777c49a3ff » ou une de ses dépendances. Le fonctionnement est pas pris en charge. (Exception de HRESULT: 0x80131515) » LC

Sur la machine qui ne dispose pas d'une licence pour ActiveReport si je retire les lignes ci-dessus à partir du fichier license.licx alors tout se construit bien. J'ai toujours pensé que si la licence n'a pas pu être trouvée, la version sans licence sera utilisé, mais il ne serait pas tuer la construction. Comment puis-je obtenir cette solution pour construire sur toute machine si elle dispose d'une licence ou ne fonctionne pas?

Était-ce utile?

La solution 2

Contacté ActiveReports et on m'a dit qu'un fichier de licence peut être maintenu pour chaque utilisateur si elles ont une licence payante ou non. L'astuce est que les utilisateurs qui ne seront pas la génération de rapports doivent installer une licence d'essai (qui ActiveReports fournit gratuitement) et les utilisateurs qui ont payé pour la licence auront leur propre licence. La licence d'essai, tout comme la licence réelle payée, traitera le fichier license.licx et fournira les actions appropriées quand il voit une entrée, il reconnaît dans le fichier .licx.

Autres conseils

Il semble en fait que cette machine n'a pas cette version spécifique de ActiveReports installés.

Nous résoudre des problèmes comme celui-ci en stockant des ensembles externes dans un chemin relatif au projet (à savoir .. \ Assemblées) et de modifier tous les projets d'inclure une HintPath, par exemple:

<Reference Include="ActiveReports3">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\Assemblies\ActiveReports3.dll</HintPath>
</Reference>

De cette façon, vous n'avez pas à vous soucier de tous les développeurs ayant la même version exacte installée. Vous devriez être en mesure de déboguer avec cette configuration, mais pas construire pour la libération.

Mise à jour

J'ai oublié de mentionner une autre pratique que nous mettre en œuvre: à moins que le composant exige absolument (nous avons une seule que je peux penser à du haut de ma tête), nous ne stockons versions du fichier license.licx. Notre entrée licenses.licx pour l'exemple ci-dessus est:

DataDynamics.ActiveReports.ActiveReport3, ActiveReports3

Vous devez garder le contrôle du fichier licenses.licx si vous faites cela, mais il se résout certainement divers problèmes de versioning.

Si je construis la solution sur une machine qui ne dispose pas d'une licence pour ActiveReport je reçois

Cela fait partie du problème. En règle générale, les licences exige que chaque développeur d'avoir une licence. Essayer de licence seulement une partie de votre équipe de développement est probablement en violation de votre permis de ActiveReports.

Il doit être parfaitement bien d'utiliser une version d'essai de ActiveReports la façon dont vous décrivez. Je l'ai vu un certain nombre de problèmes avec la licence de Visual Studio avec divers composants. Habituellement, ils peuvent être résolus en procédant comme suit:

  • Nettoyer la solution à l'aide build> Clean
  • Supprimez le fichier Licx (Visual Studio génère ce fichier au besoin).
  • Ajoutez un contrôle ARViewer à un formulaire dans votre projet (vous pouvez le supprimer plus tard). Cela doit fait sur une machine avec une licence valide ActiveReports. Et c'est ce qui devrait déclencher le fichier Licx à régénérer avec les informations correctes.
  • Régénérer (assurez-vous que vous un vrai Reconstruire, je sais qui est censé être une construction propre de +, mais reconstruisez semble être parfois importantes).

Autre que cela, vérifiez que vos références sont toutes correctes. Par exemple, assurez-vous que vous ne disposez pas plusieurs versions de DLL référencés dans différents projets au sein de la solution et assurez-vous « copie locale » et « utilisation Version spécifique » sont ceux que vous attendez.

Si vous avez encore des problèmes de créer un nouveau projet, ajouter ActiveReports (ou tout autre composant que vous rencontrez des problèmes avec) et faire une application de style « Bonjour tout le monde » rapide pour vous assurer qu'il fonctionne correctement et ensuite comparer les deux projets (références , fichiers, etc.).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top