Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extract logic to DLL #19

Closed
bastianeicher opened this issue Feb 21, 2014 · 3 comments
Closed

Extract logic to DLL #19

bastianeicher opened this issue Feb 21, 2014 · 3 comments

Comments

@bastianeicher
Copy link
Contributor

If I were to split the project into two parts (logic DLL and GUI EXE) would you be interested in merging that back into your master?
Are there any pitfalls I should be aware of? Any naming suggestions for the new assemblies? LessMsi.Core.dll and LessMsi.exe perhaps?

I'm working on a cross-platform package manager called Zero Install. It is designed to use existing ZIP/TAR/... archives and handles all the nitty-gritty details of integration into the desktop environment in a controlled and reproducible way. I would love to use a LessMSI DLL to add MSI-extraction support to Zero Install.

@activescott
Copy link
Owner

I'm totally open to a DLL and I'd love to merge back. Please do create a branch to make it easier to merge back. Ultimately, I think I'd like to see three assemblies:

  • lessmsi.core.dll - reusable API/SDK with all core logic.
  • lessmsi-gui.exe - The current GUI only version.
  • lessmsi-cli.exe - A command-line interface version that is usable from the command line.

Separating command line from GUI versions seems inevitable as the current hackish approach seems to be causing problems as see in in issue #18.

I'd be happy to work on it with you such as doing the cli version after your contribution of the dll. Let me know if you need any other help at all.

What is the timeline you think this might be done on?

@bastianeicher
Copy link
Contributor Author

I think I'm pretty much done already: https://github.com/bastianeicher/lessmsi/

Some things to point out:

  • LessMsi-cli.exe has the existing NDesk.Options-based command-line handling (without the OpenGuiCommand).
  • LessMsi-gui.exe takes the first command-line argument (if any) and uses it as the defaultInputFile without any further processing.
  • I merged the different bin directories in the project directories into a single shared bin alongside the src directory to reduce the amount of DLL copying required in the build process.
  • I did not check that the unit tests still pass, because the ExpectedOutput CSVs are hardcoded to a different path than my local Git clone.

Let me know if everything looks OK to you.

@activescott
Copy link
Owner

this is all merged now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants