Help with making app portable

Discuss anything related to JauntePE, the utlimate utility to help you tame non-portable applications. Share your experience about the apps that work with JauntePE, and the apps that don't.
Message
Author
WhACKO
Posts: 6
Joined: Tue Jul 28, 2009 4:52 am

Help with making app portable

#1 Post by WhACKO »

I'm trying to make this app portable http://insentient.net/

As far as I see it doesn't use the registry it just writes settings in AppData\Local\ and AppData\Roaming, I am able to run it using JauntePE, it creates the needed (virtual/ portable?) folders but when it tries to save the settings it shows an error that is cannot write the settings file to the default system folders?

Any help would be appreciated.

crownixx
Posts: 403
Joined: Sat May 12, 2007 6:26 am

Re: Help with making app portable

#2 Post by crownixx »

  • Get the Debug Logging file. You can use JPE Config Modifier to turn on the setting, then run the program until you get the error message. The file will be created after that
  • Zip and upload the file at Mediafire.com or any similar site
If i'm at your position, i will only run this app locally. Reason: this app is too depend on which OS it need to run. It requires Windows Vista + Aero. If it can be run portably, the app still limited to run on certain pc because of its requirement

WhACKO
Posts: 6
Joined: Tue Jul 28, 2009 4:52 am

Re: Help with making app portable

#3 Post by WhACKO »

I am aware of the dependencies the app has, still I would like to keep the settings portable, if it is possible.
Oh and I'm on a 64bit windows, tried using the JPEPortable WOW64 TestV1 with injector mode, that way nothing is redirected, she settings are saved in the system user folder.

Here's the log: http://www.box.net/shared/ymvgedn3yy
Last edited by WhACKO on Fri Jul 31, 2009 7:05 am, edited 1 time in total.

crownixx
Posts: 403
Joined: Sat May 12, 2007 6:26 am

Re: Help with making app portable

#4 Post by crownixx »

WhACKO wrote:Oh and I'm on a 64bit windows, tried using the JPEPortable WOW64 TestV1 with injector mode, that way nothing is redirected, she settings are saved in the system user folder.
64bit windows + Vista. Both are in the Known Limitations page and this reduce our successful chance. Anyway, get the JauntePE030AlphaFinal.zip here. Redllar made another JPEPortable WOW64 TestV2 i guess based on his readme
redllar wrote:- JPE Portable (put in JauntePE Toolbox directory)
o I think this has in it a more robust WOW64 mode that may work "better" than
the previous build
(it uses the launched process's instruction pointer intead
of the exe's start address, so if the WOW64 sub-system has already "started"
the process, this should have a better chance of getting the "load jpe dll"
code executed as opposed to the previous build) - or it may just give you the
"can't run" popup - anyway, use with caution as always
Hope you can test that. And i did not find the log file at your download link

WhACKO
Posts: 6
Joined: Tue Jul 28, 2009 4:52 am

Re: Help with making app portable

#5 Post by WhACKO »

My bad, fixed the link to the log file, and I have been using JauntePE030AlphaFinal all along.

crownixx
Posts: 403
Joined: Sat May 12, 2007 6:26 am

Re: Help with making app portable

#6 Post by crownixx »

WhACKO wrote:My bad, fixed the link to the log file, and I have been using JauntePE030AlphaFinal all along.
I see, and the result was no successful in both registry and filesystem redirection as well? That is a bad news as redllar has left no more workaround idea for 64bit windows testing.

Code: Select all

     JPE runtime version:  0.3.0.0 (def)
There are no debug lines in you log file because you are using the default version jauntePE.dll. Use the log version of jauntePE.dll in the JauntePE030RuntimesNB19.exe. And can you attach together the log file with your Switcher_jauntePE.ini

WhACKO
Posts: 6
Joined: Tue Jul 28, 2009 4:52 am

Re: Help with making app portable

#7 Post by WhACKO »

Didn't know there was a log version of jauntePE.dll :oops:
Here's the output log: http://www.box.net/shared/qrrfdta2c0, and I'm not sure this version is meant for 64bit, the app runs, it doesn't display any error, and the settings are saved in the system user folder as usual.

Also I did some other checking, on the change log of the app it says
The settings are unique to wherever you placed Switcher, so they will not upgrade if you move the Switcher executable around.

That might be causing some trouble??

and here's the ini setting, nothing special:
[Launch]
Path=.\Apps\Switcher.exe
JPERuntimeIni=.\Switcher_jauntePE.ini
ExeDir=1
MemIni=1
Injector=0

[Redirection]
RedirMSI=1
RedirMisc=1
Logging=2
WFSMerge=0

[ShellUsage]
Use=1
PreventMRU=1
PreventBinUse=1

[Filesystem]
Use=1
Data=.\PFS\

[FilesystemExclude]
1=*

[xHookInitExclude]
1=*
Thanx.

crownixx
Posts: 403
Joined: Sat May 12, 2007 6:26 am

Re: Help with making app portable

#8 Post by crownixx »

WhACKO wrote:Also I did some other checking, on the change log of the app it says
Quote:
The settings are unique to wherever you placed Switcher, so they will not upgrade if you move the Switcher executable around.

That might be causing some trouble??
No. That is normal when an application use User Application Data special folder to save it's configuration.


The configuration contains a lot of mistakes. If i'm right, you're copying this one originally from the redllar's PStart tutorial. It is suggested to use configuration ini located in "Toolbox\Configs" folder. Most of the time i use _Normal3.ini.

Code: Select all

Injector=0
It should be 1. Lets recall the redllar readme
redllar wrote:This is a version of the JauntePE portable launcher that does not use the MadCodeHook injection function (that is broken for 32 bit processes running on 64 bit versions of Windows) when launching 32 bit applications on 64 bit versions of Windows.
...
Injector=0 will use the MadCodeHook injector. Injector=1 will use the test injector

Code: Select all

[FilesystemExclude]
1=*
No wonder the filesystem redirection fails, because you exclude them all. Try this configuration ini

Code: Select all

[Launch]
Path=.\Apps\Switcher.exe
JPERuntime=.\jauntePE.dll
JPERuntimeIni=.\Switcher_jauntePE.ini
JPERuntimeReg=.\JPE\jauntePE.reg
JPERuntimeWFS=.\PFS
RedirReg=0
RedirWFS=1
AppReg=1
AppWFS=1
ExeDir=1
Injector=1

[Redirection]
RedirMSI=1
RedirMisc=1
MemRegistry=1
FillRegistry=1
RegMerge=1
RegIgnDel=1
ExcludeAppDir=0
WFSMerge=1
Logging=2
LogPath=.\%appname%_logging.log
LogFuncs=0

[Registry]
Use=0
Data=.\JPE\jauntePE.reg

[RegistryExclude]
1=HKEY_LOCAL_MACHINE\Hardware
2=HKEY_LOCAL_MACHINE\Security
3=HKEY_LOCAL_MACHINE\System
4=HKEY_PERFORMANCE_DATA
5=HKEY_DYN_DATA

[PortableRegExclude]
1=HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer
2=HKEY_CURRENT_USER\Software\Microsoft\Windows
3=HKEY_CURRENT_USER\Software\Microsoft\Windows NT

[PortableRegInclude]
1=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets

[Filesystem]
Use=1
Data=.\PFS

[ShellUsage]
Use=1
PreventMRU=1
PreventBinUse=1

[FilesystemExclude]
1=*

[FilesystemInclude]
1=26
Anyway, it is interesting to know your log contain the debug lines. Does this mean the jauntePE.dll successfully load into the process using the 2nd JauntePE portable launcher? I'm not sure for the answer. Hope redllar read this topic

WhACKO
Posts: 6
Joined: Tue Jul 28, 2009 4:52 am

Re: Help with making app portable

#9 Post by WhACKO »

I tried all combinations I could think of for the injector option, and the exclude one (which actually doesn't make sense because it's still enabled in the ini you posted by default).

I still don't think that this is a 64bit thing, so far I tried with picasa and seems to be running just fine, I still think that the app is the problem seeing how it made several different config files in the user folder, probably based on the folder the .exe was in.

I'll be testing some other apps when I get the time and post what I find.

crownixx
Posts: 403
Joined: Sat May 12, 2007 6:26 am

Re: Help with making app portable

#10 Post by crownixx »

and the exclude one (which actually doesn't make sense because it's still enabled in the ini you posted by default).
The difference is i exclude all special folders but i include back Appdata Roaming folder for redirection

Code: Select all

[FilesystemExclude]
1=*

[FilesystemInclude]
1=26
2=28
;edit:added non-roaming appdata folder for redirection
Image
I dont have Aero in my 32bit Vista but from the screenshot, my Switcher JPE just working fine. The local folder(C:\Users\Administrator\AppData\Roaming) is clean and the Switcher configuration is redirected to the sandbox folder (C:\SwiithcerJPE\JPE)

WhACKO
Posts: 6
Joined: Tue Jul 28, 2009 4:52 am

Re: Help with making app portable

#11 Post by WhACKO »

So then it must be 64bit thing?

The default settings are saved both in \AppData\Local\Bao_Nguyen\ and \AppData\Roaming\Bao_Nguyen\ and when I run it through jauntePE the app loads fine and when you try to hide it it tries to save the settings in the User Roaming folder.

And the needed folders are being created in the sandboxed folders, just no config is saved there?
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Configuration.ConfigurationErrorsException: Failed to save settings: Unable to save config to file 'C:\Users\WhACKO\AppData\Roaming\Bao_Nguyen\Switcher.exe_Url_iasbgooc3jtkpnsbdhcudfam3vxrgmye\2.0.0.0\user.config'. ---> System.Configuration.ConfigurationErrorsException: Unable to save config to file 'C:\Users\WhACKO\AppData\Roaming\Bao_Nguyen\Switcher.exe_Url_iasbgooc3jtkpnsbdhcudfam3vxrgmye\2.0.0.0\user.config'.
at System.Configuration.Internal.WriteFileContext.ReplaceFile(String Source, String Target)
at System.Configuration.Internal.WriteFileContext.Complete(String filename, Boolean success)
at System.Configuration.Internal.InternalConfigHost.StaticWriteCompleted(String streamName, Boolean success, Object writeContext, Boolean assertPermissions)
at System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.WriteCompleted(String streamName, Boolean success, Object writeContext, Boolean assertPermissions)
at System.Configuration.Internal.DelegatingConfigHost.WriteCompleted(String streamName, Boolean success, Object writeContext, Boolean assertPermissions)
at System.Configuration.ClientSettingsStore.ClientSettingsConfigurationHost.WriteCompleted(String streamName, Boolean success, Object writeContext)
at System.Configuration.UpdateConfigHost.WriteCompleted(String streamName, Boolean success, Object writeContext)
at System.Configuration.MgmtConfigurationRecord.SaveAs(String filename, ConfigurationSaveMode saveMode, Boolean forceUpdateAll)
at System.Configuration.Configuration.SaveAsImpl(String filename, ConfigurationSaveMode saveMode, Boolean forceSaveAll)
at System.Configuration.Configuration.Save()
at System.Configuration.ClientSettingsStore.WriteSettings(String sectionName, Boolean isRoaming, IDictionary newSettings)
--- End of inner exception stack trace ---
at System.Configuration.ClientSettingsStore.WriteSettings(String sectionName, Boolean isRoaming, IDictionary newSettings)
at System.Configuration.LocalFileSettingsProvider.SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection values)
at System.Configuration.SettingsBase.SaveCore()
at System.Configuration.SettingsBase.Save()
at System.Configuration.ApplicationSettingsBase.Save()
at Switcher.Configuration.KeyedSettings`1.Save()
at Switcher.Configuration.RuntimeSettings.Save()
at Switcher.UI.SettingsForm._closeButton_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.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)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4926 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
Switcher
Assembly Version: 2.0.0.0
Win32 Version: 2.0.0.2705
CodeBase: file:///C:/a/Switcher/Apps/Switcher.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4926 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4926 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4926 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4926 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.4926 (NetFXspW7.050727-4900)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
This is the error message I get when the app tries to save the settings.

crownixx
Posts: 403
Joined: Sat May 12, 2007 6:26 am

Re: Help with making app portable

#12 Post by crownixx »

WhACKO wrote:So then it must be 64bit thing?
Possibly. Maybe it also because Switcher depend on .NET. Earlier you said you can run picasa jpe in your 64bit vista. Maybe it is because picasa doesnt need .NET like Switcher. I dont know how to read the JIT debugging message but when goggling "System.Configuration.ConfigurationErrorsException" the result shows more on the .NET stuff. I found some info about the error here
How many instances of your application are running? Most likely this situation occurs due to concurrency between two or more instances of your application.
When you exclude everything, the error message does not appear because JauntePE ignore the path. But when you include the appdata roaming folder for redirection, JauntePE try to modify the path and maybe .NET hate this behavior and produce the error message, i guess.

It is good news to hear some of app working in 64bit OS using the new launcher. But aware that 64bit testing still not complete as redllar wrote
redllar wrote:The jauntePE runtime will be updated at a later time if this new mode proves useful within the launcher.

gyurman
Posts: 2
Joined: Wed Jul 14, 2010 5:58 am

Re: Help with making app portable

#13 Post by gyurman »

Hello guys, I want to building a downloader applications. But i don`t understud how need I edit the ini file. Can anybody help me?
So I want an downloader application without registry, but if i click some file i want for opening app is going for full but without mru.
How need i edit ini file?
Last edited by gyurman on Wed Jul 14, 2010 7:14 pm, edited 1 time in total.

User avatar
Napiophelios
Posts: 610
Joined: Sun Mar 01, 2009 5:48 pm

Re: Help with making app portable

#14 Post by Napiophelios »

gyurman wrote:Hello gays, I want to building a downloader applications. But i don`t understud how need I edit the ini file. Can anybody help me?
So I want an downloader application without registry, but if i click some file i want for opening app is going for full but without mru.
How need i edit ini file?
Well..I cant speak for the rest of these fags
but despite what my exwife says I am not gay not that there's anything wrong with that..if you are
I am just skinny and neat in appearance :oops:

now that we are clear on that
open your ini file and make sure the following sections
have this info:


[Registry]
Use=1

[ShellUsage]
PreventMRU=1

would be more helpful tho if you shared the name of the application
you are trying to portabilize

gyurman
Posts: 2
Joined: Wed Jul 14, 2010 5:58 am

Re: Help with making app portable

#15 Post by gyurman »

sorry for hello. 'Cos idiot dictionary for hun people.
So I want portable shareaza. But if i did my video player can't play nothing. But in sys working well.
Th. I will probe your conf.

Post Reply