Coder Social home page Coder Social logo

appacker's People

Contributors

sergreen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

appacker's Issues

Unhandled Exception Error: Incorrect Side-by-Side Configuration

Possible Cause: Missing/Incorrect Microsoft Visual C++ Redistributable Runtime Version

Affected: Appacker v1.3.8 (28 Dec 2020)

OS: Win 10 x64

When Appacker's Pack button is clicked, it shows a popup error notifying about incorrect side-by-side configuration.

If Continue is clicked, packing seems to be in progress (with the Packing ... Please wait button greyed out), but nothing is happening & Appacker uses 0% CPU. If Quit is clicked, Appacker exits immediately.

The same error occurs regardless of the source folder (of files) selected to be packed. Screenshot & details of the error message are at the bottom.

Windows Event Viewer shows that Appacker always fails at verInfoLib.exe (which Appacker self-extracts to the TEMP folder during every run) due to the missing dependency Microsoft.VC80.MFC v8.0.50608.0 x86.

The above appears to refer to the Microsoft Visual C++ Redistributable 2005 SP1 x86 MFC Security Update runtime library, specifically with the DLL version of v8.0.50608.0.

Microsoft only supplies the last-available MS Visual C++ 2005 SP1 MFC v8.0.50727.6195 (14 May 2011). Placing the extracted runtime DLLs (msvcr80.dll, msvcp80.dll, msvcm80.dll, vcomp.dll) within Appacker's folder results in the same side-by-side configuration error when Pack is clicked.

Is it possible to provide Appacker pre-compiled with the required dependency DLLs, so that the EXE binary is self-contained, & doesn't rely on the host PC having some old, unavailable runtime library ? (I don't have any IT training or programming knowledge, so I have no idea how to compile Appacker from the source code.)

Also, for user awareness, it would be good to state upfront in the program description/ README.md all the dependencies required by Appacker.

Thanks !

Screenshot:

Appacker Error

Appacker Popup Error:

Unhandled exception has occurred in your application.
The application failed to start because its side-by-side configuration is incorrect.
************** Exception Text **************
System.ComponentModel.Win32Exception (0x80004005): The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Appacker.MainForm.StartPacking(String sourceAppFolder, String mainExePath, String destinationPath, String customIconPath, String customFileDescription, String launchArguments, Boolean selfRepackable, Boolean openUnpackDir, UnpackDirectory unpackDirectory, Boolean noGUI)
   at Appacker.MainForm.btnPack_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Windows Events Viewer: SideBySide Error (Event 33)

Activation context generation failed for "C:\Users\user\AppData\Local\Temp\1374be56-c8b3-42ed-bf1e-44dc9be0a7ba\verInfoLib.exe". Dependent Assembly Microsoft.VC80.MFC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0" could not be found. Please use sxstrace.exe for detailed diagnosis.

Some questions

Hello,

I have some questions regarding Appacker.

1: Will Appacker handle the arguments of my application? For example, Can I pass arguments to the packed EXE file? Will Appacker send those arguments to the main executable EXE file?

2: On which line I can change the temporary path location which Appacker will extract the packed contents to?

3: Does Appacker set the correct working path? For example, if I have a file called hi.txt in the same location of the packed EXE using Appacker... Will Appacker read it from the temporary path or from the path of the packed EXE file?

4: On the 3rd question, if Appacker doesn't set the correct working path, is it possible to fix this?

Thanks!

Exception when using a 256x256 icon

I have this icon (.ico file) that is only in 256x256 resolution. When I set it as the icon of the output executable (via the GUI), the program crashes with the following exception:

System.Runtime.InteropServices.ExternalException (0x80004005): A generic error occurred in GDI+.
   at System.Drawing.Image.RotateFlip(RotateFlipType rotateFlipType)
   at System.Drawing.IconLib.IconImage.Set(Bitmap bitmap, Bitmap bitmapMask, Color transparentColor) in C:\Users\SerGreen\Source\Repos\Appacker\IconLib\System\Drawing\IconLib\IconImage.cs:line 252
   at System.Drawing.IconLib.SingleIcon.Add(Bitmap bitmap, Bitmap bitmapMask, Color transparentColor) in C:\Users\SerGreen\Source\Repos\Appacker\IconLib\System\Drawing\IconLib\SingleIcon.cs:line 345
   at System.Drawing.IconLib.SingleIcon.Add(Bitmap bitmap) in C:\Users\SerGreen\Source\Repos\Appacker\IconLib\System\Drawing\IconLib\SingleIcon.cs:line 152
   at System.Drawing.IconLib.SingleIcon.CreateFrom(Bitmap bitmap, IconOutputFormat format) in C:\Users\SerGreen\Source\Repos\Appacker\IconLib\System\Drawing\IconLib\SingleIcon.cs:line 266
   at Appacker.IconSwapper.ChangeIconFromBitmap(String pathToTargetExe, Bitmap bmpIcon)
   at Appacker.MainForm.StartPacking(String sourceAppFolder, String mainExePath, String destinationPath, String customIconPath, Boolean selfRepackable, Boolean openUnpackDir, UnpackDirectory unpackDirectory, Boolean noGUI)
   at Appacker.MainForm.btnPack_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Steps to reproduce

  1. Open the program
  2. Select source directory, output file, and main executable
  3. Click "Change icon", and choose an icon that is only in 256x256

Update

I get the following error when trying to do the same through the CLI:

A generic error occurred in GDI+.

Unhandled Exception: System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.
   at Appacker.Program.NoGuiMode(String[] args)
   at Appacker.Program.Main()

Can`t open files with *space* in name

If you try to open some file (ex. Photo.jpg) with packed app - it works and image opens with packed app
BUT if the file has name with space in path (ex. Photo december 2007.jpg) app will try to open ...\Photo (it doesen`t see any name after space)
Please tell me where can I add quotation marks to path in code? What .cs files contain pathes? Or how can I make Packed app open files with spaces in path?
Thank you in advanceю

In-memory (file-less) operation?

Hi there! Thanks a lot for writing this little thingy!

Just wanted to ask you: would it be possible to implement a "disk-less" mode when all files and resources are written to a virtual filesystem in RAM? (and not to TMP dir).

I'm not a programmer myself (still learning) and I've googled around for libraries - there are some.
Will it be worth the effort?

Thanks!

Packer thinks app is closed during splash screen of app / False repack

Hi! When I try to open most of apps with launcher/splash screen when during launch splash screen closes an apps window opens, Appacker thinks that the app is closed and its time to repack. I had this issue earlier but fixed it with writing simple .exe daemon which opens app and closes itself when app is closed for more than 2 seconds. It solved. But its not good patch because entry point of app was daemon, not app itself, so you cant associate file type with packed .exe. Video related:

bandicam.2020-12-24.22-17-15-602.mp4

This is a complexing issue: it is a bad idea to make timeout for packer when app is closed - it will take 1 second more to pack app back. But on the other hand there are no other ideas how to fix. I invented only timeout.
THERE IS an idea:
Create in "Advanced options" flag called "The app has splash screen/launcher, add timeout for packer" and maybe a field to control how much seconds should it wait

CLI Exit Issue

The application does not exit properly. You must press Enter in the command prompt after the application should have exited to actually get the application to exit. This is happens whether an error occurs, when packing is successful or even just displaying the help message.

This is causing in issue in my workflow as I am waiting for exit signals. Although this isn't the place, thanks for your work and commitment to this project.

Can't get packed file path

In my application I want to know from where it was started. But seems no such info. I checked environment, no success.

unpacker

hi where is the unpaker ,i'm sorry that I couldn'd found it.how to unpack exe files?

Packing was not performed. Packer has exited with code 0xFFFFFFFF. Unknown error.

I was trying to pack a set of files which the main.exe relies on to function. These file types are very niche and likely unheard of by most. Would this have a reason to do with the errors presented?

File size is estimated to be about 8GB and the output of the application is under 6MB.

Please let me know what else I can provide to resoluve this issue. This application is amazing work.

EDIT: I tested it more and it seems to refuse to pack my 'grf' file type.

Execute in same session

When executed from the command line, the packed output executable opens in a new session/window. This makes it impossible to read/write stdin or stdout pipes of the packed executable. I don't know how to fix, please instruct.

Move Registry Settings to INI File, Remember Settings (Hide Launch Popup, Window Position+Size, etc.)

Regarding the new Visual C++ Runtime 2005 x86 not found! reminder popup that appears upon every launch, is it possible to have a tick option Do not show again for the popup, & remember this setting ? (User can still click on the red exclamation mark icon to manually show the popup on-demand.)

Mockup Screenshot:

Appacker Launch Nagscreen

Appacker already writes a non-user-configured setting in the registry at:

HKCU\Software\SerGreen\Appacker  
=> Language = en-US 

How about moving all settings to an INI file within Appacker's folder, so that it doesn't write to the registry or elsewhere in the filesystem ?

Other settings good to have include:

  1. Remembering window position & size
    Currently, Appacker's main window position changes randomly upon every launch.

  2. Options in the Advanced Options section
    Currently, Appacker does not seem to remember any non-default option here.

Tested: Appacker v1.3.9 (23 Oct 2021)
OS: Win 10 x64

Thanks !

Files detected as malware

I got this report from my malware scanner:

virus_scan_log

Package.exe is the executable file I created using the Appacker CLI.

Unpacker.exe is the file that Appacker generates in runtime (I guess).

Seems more like it could be a false positive.

[Req] Command line switches

Would it be possible to add a command line switches to the Apppacker main executable.

Switches could be:

-s --src - Application directory to pack.
-d --dst - Destination where packed app will be created.
-e --exe - Main executable. This is the application that will launch whenever the packed app extracts itself.
-r --self-repack - Sets the packed application to refresh itself after the main executable closes. Refreshing adds and replaces files in the packed executable with those created and modified during runtime.
-i --icon - Packed application icon.

This would allow me to use this application in my workflow.

-Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.