You are here

New launcher and the .NET controversey

28 posts / 0 new
Last post
LinkSlayer64
Offline
Last seen: 12 years 3 months ago
Joined: 2009-01-06 16:44
New launcher and the .NET controversey

Hello, just got here, but I have used portable apps for sometime now, and thank you all greatly for them. Now my problem; my mom also uses some portable apps I got for her, although I made her my own launcher, and I thought, "hmm perhaps I can have others use this too" just clean it up, add more things, and voila. However, I read that there is a problem with using .NET which I only program using Visual Basic so far unfortunately, being a student. I also realize, that the program I have made is probably not truly "portable" that aside, I have made this program myself, using Visual Studio, and I reckon, it's not half bad. However my question, would it be possible to use a VB program portably, and by chance have it downloadable from this site?
If not, I have read some things, and am still confused as to whether distributing my app would be illegal T.T is there an alternate language one could suggest so as I may try to use it? perhaps something similar to VB.NET? or perhaps even C++ I may try (also learning) but in the meantime, any suggestions?

It's currently in a crappy stage the program itself, but it acts like a miniature desktop, currently theres not much you can do, not more my mom needed, but I am constantly trying to improve it.

John T. Haller
John T. Haller's picture
Offline
Last seen: 9 hours 20 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
Host Install Requirement

We don't consider any app that requires the .NET framework to be installed to be portable (apps written in VB.NET, C#, etc). This is because most PCs will not have the appropriate .NET runtimes available and .NET can not be bundled on the flash drive like Java can (.NET requires an administrator to install it locally and involves a 50-195MB download, 10 minutes or more and may require a reboot). I wrote an explanation of it up on my personal site a while ago:
http://johnhaller.com/jh/useful_stuff/dotnet_portable_apps/

Sometimes, the impossible can become possible, if you're awesome!

LinkSlayer64
Offline
Last seen: 12 years 3 months ago
Joined: 2009-01-06 16:44
Any alternatives

Well, I had read this but was unsure if it could be hosted, with large notifications that it requires .NET, however this is not an option either way, so, is there any alternatives anyone knows that I could use? perhaps something similar to VB? or just anything -_-

"Video games are bad for you? That's what they said about Rock'n'Roll." -Shigeru Miyamoto

m2
Offline
Last seen: 13 years 10 months ago
Joined: 2006-12-12 12:00
There is a .NET assembly to

There is a .NET assembly to x86 compiler that generates native code. A bit expensive, but these languages are not totally lost.

"Those people who think they know everything are a great annoyance to those of us who do." Asimov

John T. Haller
John T. Haller's picture
Offline
Last seen: 9 hours 20 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
Interesting

Interesting. I didn't even know that was possible. Well, this will be an option for freeware and commercialware portable software. Even some open source apps under the BSD, MIT and similar licenses. Of course, it can't be used on open source software under the GPL and similar as it would be combining it with closed source. Still, an interesting option for some apps.

Sometimes, the impossible can become possible, if you're awesome!

Jaqui
Offline
Last seen: 15 years 11 months ago
Joined: 2009-01-23 11:50
.net is available for all operating systems now

Mac OSX, GNU-Linux, *BSD, Solaris all can install the GNU-GPLed mono project, which is the .net framework.

if gcc is used on the system, there are bindings to add .net support for C# to the compiler and to libc.

José Pedro Arvela
Offline
Last seen: 5 years 11 months ago
Joined: 2007-07-10 07:29
No... no...

Mono is available to most systems a looooong time ago, but it doesn't replicate .Net so exactly that apps can be ran with it instead.

Apps can, tough, be ported to Mono, but this is often a hard ting that takes more or less time, according to the app. See Paint.Net, for example, a version in Mono called MonoPaint is being developed by Miguel de Icaza for a long time, but still isn't finished (although there is already a working development version).

Blue is everything.

BuddhaChu
BuddhaChu's picture
Offline
Last seen: 6 months 4 days ago
Joined: 2006-11-18 10:26
There are many answers to

There are many answers to your "suggest a programing language to learn" question since everyone has their favorite. I'd suggest learning a language that can be run on multiple operating systems so I'd learn Java if I were you.

Cancer Survivors -- Remember the fight, celebrate the victory!
Help control the rugrat population -- have yourself spayed or neutered!

horusofoz
horusofoz's picture
Offline
Last seen: 1 year 3 months ago
Joined: 2008-04-03 22:45
PAF?

Sorry if I'm misinterpreting what your asking but you could try using the PortableApps Format and PAF some of the apps in the requested apps forum. There are tonnes more requests than the current number of devs are capable of working on and we're always happy to have another contributor Smile

PortableApps.com Advocate

Nathan9222
Nathan9222's picture
Offline
Last seen: 3 years 2 months ago
Developer
Joined: 2007-12-06 22:35
To clarify... The PAF format

To clarify... The PAF format uses NSIS scripts, so go here... http://nsis.sourceforge.net/Main_Page, Once you learn the basics of this just look in the "Other\source" folder o a portable application and view the nsis files there to see how to make an application portable using NSIS. Nsis is fairly simple, but I just dont really like their documentation, though that is just me. Blum

An eye for an eye makes the whole world blind.
Mahatma Gandhi,
Indian political and spiritual leader (1869 - 1948)

m2
Offline
Last seen: 13 years 10 months ago
Joined: 2006-12-12 12:00
NSIS, ya? How came

NSIS, ya? How came specification doesn't mention it?
One can use any language as long as the executables run on practically any machine.

"Those people who think they know everything are a great annoyance to those of us who do." Asimov

John T. Haller
John T. Haller's picture
Offline
Last seen: 9 hours 20 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
Correct

Only the installer has to use NSIS. You can code a launcher in any language you want or just code an app that doesn't need a launcher. The only caveat is that we recommend against AutoIT for launchers for official apps as the false positive rate is pretty high.

Sometimes, the impossible can become possible, if you're awesome!

richo
richo's picture
Offline
Last seen: 1 month 5 days ago
Joined: 2007-01-31 22:03
ILMerge

There is a program available that removes a .NET programs requirements for the .NET runtime to be installed. It is called ILMerge. ILMerge is a text-based commandline program that merges the necessary assemblies into a single executable file. But being a console program, it is fairly difficult to use. For Delphi.NET and C# (I assume Turbo C#, but I am not sure) there is a gui called DILMerge. If there is enough interest, I may even try and write a gui that works for all .NET languages.

Anyway, here are the links for ILMerge and DILMerge.

ILMerge: http://www.microsoft.com/downloads/details.aspx?FamilyID=22914587-b4ad-4...

DILMerge: http://cc.codegear.com/Item.aspx?id=23227

Also, I would suggest Delphi.

John T. Haller
John T. Haller's picture
Offline
Last seen: 9 hours 20 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
Not Quite

It packages multiple assemblies into a single assembly, but it still requires .NET.

Sometimes, the impossible can become possible, if you're awesome!

richo
richo's picture
Offline
Last seen: 1 month 5 days ago
Joined: 2007-01-31 22:03
There was one

There was one .NET program that I found that had been merged using ilmerge and it worked on a clean XP with no service packs installed and no .Net runtime installed. Can't remember what it was though. (I lost it when one of my disks got corrupted.)

wraithdu
Offline
Last seen: 11 years 6 months ago
Developer
Joined: 2007-06-27 20:22
Just a curious comment, but

Just a curious comment, but can you even consider apps written in MS VC++ portable any more? Even if they don't use .NET, anything written in VS2008 will more than likely require the VC++ 2008 Redistributable to run. I mean, I wrote a VERY small sample DLL for a concept I was working on, and it needed them to be installed on an XP test machine. I even compiled it w/o the /MD switch, which means it would not require msvcr90.dll.

John T. Haller
John T. Haller's picture
Offline
Last seen: 9 hours 20 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
You Can Include the C++ Runtime

You can include the C++ runtime with the app. For example, both ClamWin Portable (which uses the 8.0 runtime) and OpenOffice.org Portable (which uses the 9.0 runtime) include the appropriate runtime libraries in their packages and don't need it to be installed on the host machine to run.

Sometimes, the impossible can become possible, if you're awesome!

wraithdu
Offline
Last seen: 11 years 6 months ago
Developer
Joined: 2007-06-27 20:22
Hmm, good point.

Hmm, good point.

wraithdu
Offline
Last seen: 11 years 6 months ago
Developer
Joined: 2007-06-27 20:22
Could you test this please,

Could you test this please, on a system that does not have the VC++ 2008 runtime installed, then see if you can get either DLL to load in any way?

It's a small app that just tries to load each DLL, and displays a message box with the handles, then unloads them.

I ask because I could NOT get either one to load on an XP system that did not have the VC++ 2008 runtime actually installed. I tried including the msvc*90.dll files in the same directory but was still unsuccessful.

msgdll.dll - compiled with /MD, needs msvcr90.dll FOR SURE
msgdll2.dll - compiled with /MT, does not need msvcr90.dll, but sill will not load if the runtime is not installed.

Thanks!

http://patrickpatience.com/nascent-project/wraithdu/files/testload.zip

John T. Haller
John T. Haller's picture
Offline
Last seen: 9 hours 20 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
Fails Without

It fails without MSCV installed (null pointers). But if you place Microsoft.VC90.CRT.manifest, msvcm90.dll, msvcp90.dll and msvcr90.dll in the same directory as them, it'll work. Even if VC++ 2008 runtimes aren't installed on the host PC.

Sometimes, the impossible can become possible, if you're awesome!

wraithdu
Offline
Last seen: 11 years 6 months ago
Developer
Joined: 2007-06-27 20:22
Ah, thanks. It was the

Ah, thanks. It was the manifest I was missing.

wraithdu
Offline
Last seen: 11 years 6 months ago
Developer
Joined: 2007-06-27 20:22
Damn. Any other ideas or

Damn. Any other ideas or something special I have to do when compiling the DLL? I tried your suggestion on a virgin XP SP3 system in a VM. I have the manifest and all 3 runtime DLLs in the same directory as the app, and it still can't load either of my DLLs.

John T. Haller
John T. Haller's picture
Offline
Last seen: 9 hours 20 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
Odd

That's odd as that's the exact same thing I did. Win XP SP3 fully patched in a VM that I keep in a 'clean' snapshot and rollback to after each test. That's where I got the two different results.

Make sure your manifest is right. You can snag it from OO.o Portable 3. It's in the bin directory I believe.

Sometimes, the impossible can become possible, if you're awesome!

wraithdu
Offline
Last seen: 11 years 6 months ago
Developer
Joined: 2007-06-27 20:22
What a bunch of weirdness. I

What a bunch of weirdness. I grabbed the manifest and DLLs right from the Visual Studio redist -

C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\

Apparently, these files are crap, well at least the manifest. Still using those DLLs, which are version 9.0.30729.1, and using the manifest from OO.o (which is for version 9.0.21022.8), the damn thing works. But if I change the version in the manifest to match the DLL version (30729.1), it DOESN'T work anymore. WTH?

It also seems that all my DLL compiled with /MD needs is msvcr90.dll, and all my DLL compiled with /MT needs is the manifest ONLY.

Could MS make this any more f'd up? Why the hell won't the OO.o manifest work with the matching DLLs and version info? BTW, the only other thing distinguishing in the manifest is the publicKeyToken, and it's the same for both runtime versions.

LinkSlayer64
Offline
Last seen: 12 years 3 months ago
Joined: 2009-01-06 16:44
Thank you all, but...

Ok, thank you all for the wonderful suggestions, but I suppose what I really need to know is, say, what was Firefox or Pidgin or any of these other apps coded in? or, actually, what was the PortableAppsLauncher coded in?

"Video games are bad for you? That's what they said about Rock'n'Roll." -Shigeru Miyamoto

John T. Haller
John T. Haller's picture
Offline
Last seen: 9 hours 20 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
NSIS and Delphi

Our launchers and installers are in NSIS. You could do a launcher or portable app in just about any language, though. The Platform/Menu is coded in Delphi.

Sometimes, the impossible can become possible, if you're awesome!

LinkSlayer64
Offline
Last seen: 12 years 3 months ago
Joined: 2009-01-06 16:44
Thanks

Ok, sorry for my, lack of knowledge, this is all very appreciated, guess I'll have to do more and more research, perhaps C++ for I am learning that also to program a robot for a competition known as FIRST, so much obliged, now to hit the books! (also, if anyone might, I will host the app to download just to get any opinions on the direction I was going if anyone would like)

"Video games are bad for you? That's what they said about Rock'n'Roll." -Shigeru Miyamoto

rab040ma
Offline
Last seen: 6 months 20 hours ago
Joined: 2007-08-27 13:35
There's one specialized

There's one specialized exception to the reservation about .NET: if you know that your portable app will be used Angel on Vista machines, which come with .NET runtime or (b) other machines you are sure already have .NET runtime, there shouldn't be a huge problem. It might not get accepted for listing or distribution on this web site, but it sounds like you are working on a portable app for a specific purpose.

To be truly portable it needs to work on a plain vanilla machine. But if you just want to use it on your machine at school or at your cousin's home, there's not a particularly good reason why you can't use the techniques here to portablize any application.

Another long-shot for programming language for a portable app would be Java. You can take a JVM runtime with you on your stick, in case it is not installed, and if you are careful how you write the application, it won't leave information behind or otherwise misbehave. Java apps are apparently not being accepted for this site either, even those that are not dependent on the registry and otherwise behave appropriately. But that won't stop you from using it if you want.

I only mention that because I hear good things about Java as one of platforms Computer Scientists have decided are good, and there seems to be steady demand for Java programmers, which isn't quite as true for NSIS or Python (for example) programmers.

MC

Log in or register to post comments