Skip to content

Legacy (x86) Releases

Choose a tag to compare

@oleg-shilo oleg-shilo released this 06 Oct 12:25
209cc00
Merge pull request #1 from chcg/appveyor_x64

appveyor + x64

Thank you. Though the approach for the x64 build in this case is to be changed very soon. 

I have just finished yesterday the CS-Script.Npp x64 migration. Only a single outstanding item left (I may need to contact @kbilsted for that).

It was quite interesting dev effort. @kbilsted has done fantastic job of capturing native Npp interface. In many cases his interface was better than that one that I prepared for CSScriptNpp and CSScriptIntellisense. Thus I have changed the codebase to use his API.

Though there were a few critical defects that made the current Kbg.NppPluginNET solution actually unsuitable for hosting any comprehensive plugins. For example calling `GetOpenedFiles` crashes the Npp 100% reliably. I will be preparing the pull request with my fixes so @kbilsted can benefit from this effort as well.

Another very beneficial outcome of this exercise is that I have extended Kbg.NppPluginNET original solution (VS project template) and now building the plugin can be done without exporting the plugin assembly. This makes it possible to have a single-assembly AnyCPU plugin implementation possible. And the x86 vs x64 plugin hosting is the result of a simple packaging technique:

Kbg.NppPluginNET solution is just two files: 
- NppPlugin.Host.dll (compiuled for x86) 
- NppPlugin.Host.dll (compiuled for x64) 

Npp plugin solution:
- 'MyPlugin' VS project  (compiled for AnyCPU and referencing any of two NppPlugin.Host.dll)
- _Any other dependencies_ 

Npp plugin packaging/deployment:
``` 
<x86 ProgramFiles on x64 Windows>
─ Program Files (x86)
  └─ Notepad++
     ├─ plugins
         ├─ MyPlugin
         |  └─ MyPlugin.dll <AnyCPU assembly>
         └─ MyPlugin.x86.dll <renamed x86 version of NppPlugin.Host.dll>

************************

<x64 ProgramFiles on x64 Windows>
─ Program Files
  └─ Notepad++
     ├─ plugins
         ├─ MyPlugin
         |  └─ MyPlugin.dll <AnyCPU assembly>
         └─ MyPlugin.x64.dll <renamed x64 version of NppPlugin.Host.dll>

```                   

I will also be contributing NppPlugin.Host to the kbilsted/NotepadPlusPlusPluginPack.Net