end2endzone / ShellAnything

ShellAnything is a C++ open-source software which allow one to easily customize and add new options to *Windows Explorer* context menu. Define specific actions when a user right-click on a file or a directory.
MIT License
183 stars 27 forks source link

Release with the #96 solution #99

Closed DBenS closed 3 years ago

DBenS commented 3 years ago

Hi !

Is there any expected date for a new Release with the solved #96 ? Thank you.

end2endzone commented 3 years ago

Hi. I have not really though about it. To be honest I did not evaluated which features will be part of the next release. I have few hours per day to work on these projects and family obligations. I hope to get a release ready in a month or 2.

At the moment, I am trying to complete the release of bin2cpp. I have to update documentation, project samples, code examples, unit tests and make sure it all works on all platforms and then create the installers/packages.

Once I am done with bin2cpp, I shall start working on ShellAnything asap.

end2endzone commented 3 years ago

Also did you noticed that binaries are already available with the fix for #96 ? You can find new unofficial binaries at https://ci.appveyor.com/project/end2endzone/shellanything/builds/40929933/artifacts.

DBenS commented 3 years ago

Hi @end2endzone , thank for answering. Sure, I understand and agree entirely with your points.

My doubts are about all components available there in the BIN folder ; I mean, in the 0.6.1-64.zip we see just "shellext.dll" which seems to be a "packed" version of all components seen in 0.7.0 (file.exe, magic.mgc, zlib.dll).

So, I tried to utilize only the "shellext.dll" library there and I had errors due to the lack of these components in the same folder I have the 0.6.1 version (which have only the "shellext.dll" for version 0.6.1).

I would appreciate if you could, at least, point to me how (and using which utility) I could pack them in a single "shellext.dll".

Thank you and kindest regards.

end2endzone commented 3 years ago

Hi.

in the 0.6.1-64.zip we see just "shellext.dll" which seems to be a "packed" version of all components seen in 0.7.0 (file.exe, magic.mgc, zlib.dll).

The comment above is incorrect. These are new components which were recently integrated in ShellAnything (See #94). They are mandatory. However, I did not had time to update the prerequisites software requirements section of INSTALL.md.

The reason they are not "packed" (a.k.a Statically linked) inside shellext.dll is becase they are external libraries that I did not develop. It is a matter or transparency (to let people know I that I relying on these libraries). Also, I am not certain the associated licenses allow me to statically link to these libraries. In other words,

The file magic.mgc is a data file and cannot be statically linked to a dll/exe.

So, I tried to utilize only the "shellext.dll" library there and I had errors

Yes, These new libraries are now mandatory.

I would appreciate if you could, at least, point to me how (and using which utility) I could pack them in a single "shellext.dll". I am not aware of any utility that can "pack" multiple libraries into a single file without recompiling. But like I said above, I am not certain I can do this with the libraries because of license restrictions.

I am not certain I understand what you want. Why can't you just uninstall version 0.6.1 and install the new unofficial 0.7.0 version? Is there a reason why you can't uninstall version 0.6.1? Is it because 0.7.0 is an unofficial build? Is it because you did not used the installer and you manually registered the shell extension (file shellext.dll)?

The update process should be simple and strait forward:

  1. Unregister the existing shell extension.
  2. Uninstall version 0.6.1
  3. Download ShellAnything-0.7.0-win64.exe and double click on the executable.
  4. Follow registration process to register shellext.dll.

On a side note, before uninstalling, it might be a good idea to backup your custom Configuration Files.

DBenS commented 3 years ago

Ok @end2endzone , now it's clear to me.

Is it because you did not used the installer and you manually registered the shell extension (file shellext.dll)?

Yes, although I had run the EXE version of your installer on my development computer, I just copy your DLL ("shellexte.dll") and its license disclaimer into the users' computer via MSI and, of course, registering it with a "regsvr32" command. I call neither your MSI nor the EXE version on the users' computers.

I'll try to follow what you recommend.

Thanks for yout attention and patience.

Kindest regards, David