.cab creator for WinCE CF 2.0 - compact-framework

So I created a cab file in Visual Studio and it all was fine and dandy. i am using HP thin client with WinCE 4.0
One thing though, there is a folder called Program Files on My Device and there is a folder called Program Files on Hard Disk.
Now, My Device memory resets itself each time the machine is rebooted.
Unfortunately, VS 2008 won't let me change the path for where the cab installs the program.
Any ideas on how to change the path?

I have figured it out: any time you wish to install an application in a different path, use Custom folder, not Programs or Program Files.
Looks like InstallDir can not be modified w/o hacks. I used Custom folder while in the Cab project and specified the path I wish to install this app; it worked.

Related

Test VB.Net Application as if Vb were not installed

I have created a VB.Net application that I plan to distribute using the .exe file in the Release folder. Upon sending this to a user, I was informed that it would not run on their system. The exe runs fine on my system no matter the location of the file so it's not a folder dependency. I don't have easy access to another computer, so is there an easy way to test my file as if visual basic were not installed on my system?
Edit: By "does not run" I mean nothing occurs when the exe is clicked

VCL Application - AxisMediaControl.dll Dynamic Link File Location

I have a VCL application built in C++Builder 10.0 Seattle. It uses Axis Media Control on the Form to display video, therefore it loads the AxisMediaControl.dll file when it runs.
In the past, I have had this deployed on a 32bit target machine, where the application lived in the C:\Program Files\AppName directory, and the AxisMediaControl.dll was installed to this same location. Everything worked as expected.
This application is a 32 bit application, so when deploying to a 64 bit target machine, it is installed in the C:\Program File (x86)\AppName directory. Once again, the AxisMediaControl.dll file is deployed in the application directory.
The app fails to launch with the error "The specified module could not be found". Using Process Monitor, I found the program is looking for the Axis DLL in the older Program Files directory instead of the x86 dir. What would cause the application to look for the DLL in that location?
Running the same binary on my dev machine, the application loads the DLL from my SysWOW64 directory. If the DLL is placed there on the target machine, it still fails to look in that location. It is ONLY looking in the older Program Files application path, which I cannot understand.
I'm hoping someone can shed some light.

Deploying Smart Device Project into SD Card

Greeting,
I'm having difficulty deploying my Smart Device Project into the SD Card of my MC2180. My application uses Microsoft SQL Server Compact Edition v3.5, and it need to be deploy on a WinCE 6.0 device (MC2180).
Now the problem is :
1) If I do a normal deploy to my device, I can set it deploy the "Application" in my SD Card, BUT the SQL still install in my Program Files, by any chance if the device got a reset my "Application" won't work anymore because SQL is not there.
2) I can create a CAB File, BUT I don't know how to include my SQL installer.
What I want is to make a CAB that can install everything nicely, OR, make the program portable :)
Please advice what can I do :) I'm using Visual Studio 2008.
Regards,
Milo
You may try to extract and repackage files in the SQL compact cab, but this may be clumsy and still have some issues if those file must be placed in the Windows folder to be found from the loader and your device configuration does not support a folder for executables on the SD card. Usually the simplest solution is to install the cab file by launching wceload every time you app starts. You can suppress the UI using the /noui command line switch. Obviously you may add a check that verifies if the files are already in place (to avoid multiple installs that will be a time waste) and you'll also need to load classes/forms etc. that reference the SQLCE modules only after you've finished the installation.

Distribute my VB.Net App

I've made a simple calculator. My VB.Net (WinForm) App is inside Bin\Debug.
I have some files. These are the files:
AppName.exe
AppName.pdb
AppName.vshost.exe
AppName.vshost.exe.manifest
AppName.xml
What I want to do is to run my app on another computer. I've installed the right
Framework, in this case is 4.0
Could anybody help me telling me if I've got to copy all files (to the other computer) to run my app, or just the AppName.exe is enough?
Build your application in Release mode and then copy the contents of bin\Release to the other computer. Create a shortcut on the new computer to AppName.exe and rename it to an appropriate name if you wish.
Note: Building in Release mode does not include the .pdb files, which are necessary for proper debugging and it also optimizes the compiled code.

VB.net app without installation

Is it possible to create a VB.Net application which users can just run without installing it first.
If not, is it possible in another .Net language.
If not, how IS it possible :)
PS: The application only has to run under Windows (>= XP).
If they have the .NET Framework installed (the version of it that you developed it), they only need the .exe. You can find the .exe file in the bin directory of your projects folder in your Visual Studio workspace.
If they do not have the framework installed, you'll need to produce an installation for them. It's extremely easy with Visual Studio by just creating a setup project in the same solution as your code.
As long as the user has the .net runtime installed, and your exe has any needed resources in the same folder (dll's, images, ect) theres no problem with that.
If you mean without installing the .net framework though, that won't be possible.
just build the program, and go into the (assuming the project name is app1) app1/app1/bin/debug/ dir. there should be a file there called app1.exe. this file is the compiled .exe from you project. any other computer will be able to run this without doing any installation (provided they have the .NET framework installed (it comes standard on any computer with an os > WinXP))
EDIT: If you were building with debug configuration, it would be app1/app1/bin/debug/, but if you were building with release configuration (which would probably be a better idea if you are distributing) the path would be app1/app1/bin/release/
If you mean running it without the .NET Framework, it used to be possible, but apparently the company's website is no longer in English so I have no idea what's happened to it.
EDIT: If you were building with debug configuration, it would be
app1/app1/bin/debug/, but if you were building with release
configuration (which would probably be a better idea if you are
distributing) the path would be app1/app1/bin/release/
I am developer and have no administration rights to live(production) network.
I had to find away to deploy an app without installation... and my app is self updating this cause other problems too....
The production network Computer check/monitors the file versions etc, so updating in the program files can not be done, where a MSI has been used for deployment.
Using this above I am able to copy and Run the App from the User Profile (where the user has full rights).
lets understand how program runs-
an .exe needs some function which are not inside the .exe, such as , for example substring() function. these predefined function resides in some .dll libraries.
when .exe is executed by user, .exe first finds the .dll and then the function inside that particular .dll.
.exe first looks within the current folder for that .dll
if not found then it searches that in PATHs. (PATH is Environment variable which value is a list of folders such as System32 etc.)
an .exe usually needs only 3 things - .exe itself, .dll which predefined function it is using, and some ActiveX controls(.ocx). apart from these 3, .exe only uses resources (such as icons etc).
lets focus on these 3(.exe, .dll, .ocx)
first you need to check what .dlls your .exe is using. you can easiely do this by using a dependency walker.
then make sure all these .dlls (that dependency walker is showing,or in other words- all these dlls whose functions your .exe needs) are either in current folder(in which your .exe resides) or in the PATHs.
if this step is done then your .exe has high chances to run whithout "installing".
the only problem is that some .dll and all of .ocx, needs to be registered first(means they have to have some kind of registry entry). they are not ready to use just by copying and pasting in current folder or PATHs.
but you can register these .dlls and .ocx's by using regsvr32 (with command line).
after that your .exe should not face any problem to run successfully.
hope you got the main concept.