|
Thanks for the advice. I have now managed to get an acceptable "no-install" installation for NodeXL. I would be happy to share the details with any other folks with similar usage scenarios.
Basically, there was one major change, which was to revert GetApplicationFolder to its behavior from earlier versions, having it return
Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase
This overrides the newer behavior, which is to point to a "Program Files" subdirectory. Some other path-related functions then required patching: GetSnapGraphMetricCalculatorPath in GraphMetricCalculatorBase.cs, TryGetTemplatePath in ApplicationUtils.cs,
and TryGetFilesInPlugInFolder in PlugInManager.cs. In each case, the URI prefix "file:\" needed to be removed so that these functions could work with the plain file path minus any URI trappings.
With these changes in place (and your own signing key at the ready), you can build the project. (The ReadMe file really should say something about replacing the signing key.) But instead of distributing the installer, just zip up the NodeXL/ExcelTemplate/bin/Release
folder and distribute that. (The release build is quite a bit smaller than the debug build.) Students can unzip the folder and start up NodeXL by opening up the template contained inside. This avoids the complexities of the installer.
The Help system, Import Plug-Ins, Splash screen, and graph metrics all work. There may be other features I didn't test that are broken, though.
Caveats:
* No NodeXL menu item, not a big deal for me
* NodeXL files must be located inside the Release folder in order to work.
* You have to use Import... to make use of NodeXL files created on other machines. They cannot be opened directly but have to be moved into the Release folder before opening.
These peculiarities are not deal-breakers for me and the benefit is I can actually use NodeXL for my labs as planned. I do encourage students to use the real installer on their own home machines but not all of them have home machines, so this build lets
them do their assignments in university labs.
Robin Burke
DePaul University
|