8

ich einen ComponentOne Flexgrid verwenden, wird es automatisch in seiner Lizenz registriertDebug-Fehler: Licenses.licx: unable Art zu lösen

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

Ich benutze auch eine benutzerdefinierte Steuerelement, das die C1FlexGrid erbt, aber auf der Laufzeit es versucht

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

in der Lizenzdatei zu registrieren, die letztlich einen Fehler erzeugt:

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

Wie kann ich dieser Klasse mitteilen, dass sie nicht versuchen soll, das Steuerelement zu lizenzieren, da es bereits vererbt wird und selbst lizenziert wird? Ich habe bereits [LicenseProvider()] aus der DataTree-Klasse entfernt

+0

Ich weiß nicht, ob dies Ihnen helfen wird, aber wenn wir Probleme mit ComponentOne bei der Lizenzierung haben, erstellen wir einfach ein leeres Formular, fügen die richtigen Komponenten hinzu und erstellen dann die Anwendung neu. ComponentOne fügt dann die Lizenzen ordnungsgemäß zur Datei hinzu. Oder sind Sie sicher, dass Sie die richtige Version referenzieren? Hast du "Specific Version" = false auf der Referenz versucht? – Corey

+0

Ist die Eigenschaft Compile operation auf 'Embedded Resource' für die Datei licenses.licx gesetzt? – Steve

+0

'Build Action: Eingebettete Ressource' ist was ich habe. Ich denke @ Notacats Antwort ist richtig. Sie können es nicht verhindern, aber Sie können nur die Datei licenses.licx bearbeiten, um den fehlerhaften Eintrag zu entfernen (in meinem Fall die Klasse, die ich erstellt habe, die die lizenzierte Drittanbieterkomponente erweitert.) Sie wird später hinzugefügt, wenn ich ein bearbeite Formular, das diese Komponente verwendet, aber es kann wieder entfernt werden. Ärgerlich, aber einfach genug. – JMD

Antwort

2

Ich denke, der einzige Weg, dies zu tun ist, die Datei licenses.licx manuell zu bearbeiten und DataTree.C1FlexDataTree von dort zu entfernen. Hinweis: VS bearbeitet die Datei licenses.licx automatisch, wenn Sie mit Formularen und Steuerelementen im Designer arbeiten. Wenn Sie alle Designer-Fenster schließen und die Licx-Datei manuell bearbeiten, werden Ihre Änderungen gespeichert und Sie können Probleme vermeiden. Das häufigste Problem mit LICX-Dateien ist ein Buildfehler, nachdem Sie die Steuerelemente auf eine andere Version aktualisiert haben. Um dies zu vermeiden, können Sie nur die Tokeninformationen für die Version und den öffentlichen Schlüssel aus dieser Datei entfernen. Danach würde es mit jeder Version funktionieren. I.e. Sie licenses.licx Dateiinhalt sollte wie folgt aussehen:

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

(oder ohne DataTree.C1FlexDataTree Linie). Hinweis: Wenn Sie den Designer öffnen, um einige Änderungen vorzunehmen, kann VS diese Datei erneut bearbeiten. Es gibt keine Möglichkeit das zu verhindern. Sie müssen die Datei noch einmal bearbeiten.

2

Dies ist ein Schmerz ... Ich würde vorschlagen, Sie installieren das EmptyLicensesLicx nugget-Paket, und es wird sicherstellen, dass es ein leeres Licenses.licx in Ihrem Projekt, bevor es kompiliert wird (das ist alles was Sie brauchen).

+0

Wow! Danke vielmals! – Aviva