Closed chcg closed 6 years ago
Thank you. Looking forward to see the how far it is in the x64 land. I am on holidays right now so it will need to wait till the next year (a week or so :o)
Just wanted to let you know that I have started the actual porting to the new x64 hosting model (https://github.com/kbilsted/NotepadPlusPlusPluginPack.Net).
The effort requires significant project restructuring thus please put on hold any modifications based on the current master
.
If you must to work on something before the completion x64 porting please use before_x64_porting
branch.
The minimum required parts from https://github.com/kbilsted/NotepadPlusPlusPluginPack.Net are already merge with this PR and are functional. I think just if you want to use the new splitted interface you need to port. Be carefull to take the data from the template, as the demo is outdated.
I already worked in the suggestion for VS2017 from https://github.com/kbilsted/NotepadPlusPlusPluginPack.Net/issues/31 to remove the path:
Ok, by simply removing the LibBoolPath attribute on the DllExportTask in NppPlugin.DllExport.targets it works for me in both VS2015 and VS2017. :P
The minimum required parts from https://github.com/kbilsted/NotepadPlusPlusPluginPack.Net are already merge...
I am not sure thatI follow. I tried to build the merged project and had no luck with hosting x64 binaries at runtime. I also noticed that the correct NPP interface (content of PluginInfrastructure) still wasn't in the codebase.
Anyway, I have already brought the correct "NppPluginNET*.cs" and their dependencies as well as have a working x86/x64 plugin hosting infrastructure. Thus I am really close to get is all together.
And yes, "Ok, by simply removing the LibBoolPath attribute on the " is a silly thing that supposed to be already fixed in the https://github.com/kbilsted/NotepadPlusPlusPluginPack.Net but.... I have also figured this out. Interestingly enough "LibBoolPath" does not upset VS2015 but breaks VS2017 build. But removing it makes both IDEs to build just fine.
Similar to:
- if "%PlatformToolset%"=="VS15" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %archi%
- if "%PlatformToolset%"=="VS17" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %archi%
also the path to the libtool is no longer at:
LibToolPath="$(DevEnvDir)\..\..\VC\bin"
, but anyhow the path seems to be set automatically by the IDE, so maybe:
LibToolPath="$(DevEnvDir)....\VC\bin;$(LibToolPath)"
would work similar.
I also want to use this opportunity to restructure the project by making both core assemblies pure .NET and introducing a lean pure plugin (exported) assembly that simply loads the core assemblies at runtime.
Though this task has its own challenges as it is a canonical cyclic dependency case. But I have solved it by mixing binary and source sharing.
Merging both core assemblies may be somewhat beneficial but not essential (at least at this stage)
Build, see https://ci.appveyor.com/project/chcg/cs-script-npp/build/1.7.6.64