8

J'utilise un ComponentOne FlexGrid, automatiquement enregistré dans sa licenceerreur de débogage: Licenses.licx: incapable de résoudre le type

C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20122.716, Culture=neutral, PublicKeyToken=79882d576c6336da

J'utilise aussi un contrôle personnalisé qui hérite de la C1FlexGrid, mais l'exécution il essaie d'enregistrer

DataTree.C1FlexDataTree, fpstudio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

dans le fichier de licence, ce qui crée finalement une erreur:

Error 51 Unable to resolve type 'DataTree.C1FlexDataTree, fpstudio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' C:_DEVELOPMENT_FP_DRAFT12\COMPONENT1_WORKING_MERGED\fpstudio\Properties\licenses.licx 3 Freepour Studio

Comment puis-je dire à cette classe de ne pas essayer de concéder une licence pour le contrôle car il est déjà hérité et est lui-même sous licence. J'ai déjà supprimé [LicenseProvider()] de la classe DataTree

+0

Je ne sais pas si cela finira par vous aider, mais chaque fois que nous avons des problèmes ComponentOne avec la licence, nous créons simplement un formulaire vierge, ajouter les composants appropriés, puis reconstruire l'application. ComponentOne ajoutera ensuite correctement les licences au fichier. Sinon, êtes-vous sûr de référencer la bonne version? Avez-vous essayé "Version Spécifique" = false sur la référence? – Corey

+0

Avez-vous la propriété Opération de compilation définie sur 'Embedded Resource' pour licenses.licx? – Steve

+0

'Build Action: Embedded Resource' est ce que j'ai. Je pense que la réponse de @ notacat est correcte. Vous ne pouvez pas l'empêcher, mais vous pouvez simplement modifier le fichier licenses.licx pour supprimer l'entrée incriminée (dans mon cas, la classe que j'ai créée qui étend le composant tiers sous licence.) Elle sera ajoutée ultérieurement à chaque fois que je modifie un formulaire qui utilise ce composant, mais il peut être re-supprimé. Agaçant, mais assez simple. – JMD

Répondre

2

Je pense que la seule façon de le faire est d'éditer le fichier licenses.licx manuellement et de supprimer DataTree.C1FlexDataTree à partir de là. Remarque: VS modifie automatiquement le fichier licenses.licx lorsque vous travaillez avec des formulaires et des contrôles dans le concepteur. Si vous fermez toutes les fenêtres du concepteur et modifiez le fichier licx manuellement, vos modifications seront enregistrées et vous pourrez éviter les problèmes. Le problème le plus courant avec les fichiers licx est l'erreur de construction après la mise à jour des contrôles vers une autre version. Pour l'éviter, vous pouvez simplement supprimer les informations de jeton de version et de clé publique de ce fichier. Après cela, cela fonctionnerait avec n'importe quelle version. C'est à dire. vous Licenses.licx le contenu du fichier doit ressembler à ceci:

C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2 
DataTree.C1FlexDataTree, fpstudio 

(ou sans DataTree.C1FlexDataTree ligne). Notez que si vous ouvrez le concepteur pour effectuer des modifications, VS peut à nouveau modifier ce fichier. Il n'y a aucun moyen d'empêcher cela. Vous devrez modifier le fichier une fois de plus.

2

Ceci est une douleur ... Je vous suggère d'installer le paquet nuget EmptyLicensesLicx, et il s'assurera qu'il y a un vide Licenses.licx dans votre projet, avant qu'il ne soit compilé (ce qui est tout ce dont vous avez besoin).

+0

Wow! Merci beaucoup! – Aviva

Questions connexes