41 votes

Comment utiliser Scintilla .NET dans un projet C #?

Je suis d'essayer d'utiliser Étincelle .NET dans un projet (je veux un bon éditeur + de la syntaxe, etc). Malheureusement, quand je référence les binaires dans mon projet, je n'arrive pas à réellement utiliser l'Étincelle de contrôles. Je reçois deux erreurs.

  1. La première se produit lors de l'ajout d' SciLexer.dll comme une référence à mon projet. Je reçois un message qui dit: Une référence à SciLexer.dll pourrait pas être ajouté. Assurez-vous que le le fichier est accessible, et que c'est un assemblée valide ou d'un composant COM.

  2. La deuxième erreur se produit lorsque j'essaie d'utiliser les contrôles de ScintillaNET.dll. Si j'essaie de faire glisser le composant dans un formulaire, j'obtiens le message suivant: impossible de créer un composant Étincelle. Le message d'erreur suivant: Système d'.ComponentModel.Win32Exception: %1 n'est pas une application Win32 valide à ScintillaNet.Scintilla.get_CreateParams()

Aucune aide avec l'un de ces problèmes serait très apprécié. Pour mémoire, je suis en cours d'exécution Visual Studio 2008 en cours d'exécution sur une version 64 bits de Windows 7 plate-forme.

Merci.

28voto

Tim Robinson Points 28696

Cela fait un petit moment que j'ai utilisé Scintilla, mais ma compréhension est que SciLexer.dll c'est toute une DLL native, qui est pourquoi vous ne pouvez pas ajouter une référence à partir de Visual Studio.

Au lieu de cela, vous devez "organiser" pour SciLexer.dll pour apparaître dans le bon répertoire, au moment de l'exécution, de sorte qu'il peut être chargé par ScintillaNET.dll. La meilleure façon de le faire serait d'ajouter SciLexer.dll pour votre projet Visual Studio comme un fichier brut (pas de référence), puis modifiez les propriétés sur le fichier pour l'avoir copié dans le répertoire de sortie lorsque votre projet est construit.

Étant donné que vous êtes en 64 bits, j'espère que vous aurez besoin pour construire votre application spécifique sur 32 bits, et pas AnyCPU. Comme je l'ai dit, ça a été un moment depuis que je l'ai fait, mais quand je l'ai fait, Étincelle avait uniquement les binaires 32 bits.

3voto

Steve Points 1

J'ai contourné le problème en copiant les fichiers dans C:\Windows\SysWOW64

J'ai eu l'idée du post de @ weston.

2voto

westonfw Points 21

je rencontre également des erreurs et j'ai écrit, peut-être pouvez-vous voir ce lien: http://www.devtext.com/blogs/detail/57/fix-scintillanet-x64-failed-to-create

-1voto

user3060389 Points 1

j'ai ajouté une référence à Scintilla.dll au lieu de SciLexer.dll - et cela a fonctionné

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X