The size of our exe is getting to be about 4MB and we're spending
more and more time twiddling our thumbs waiting for eVC to download the
app to the emulator before it runs.[1] So we did some searching and
found an alternate way:
1. Click the Emulator menu and select Folder Sharing. Point the
shared folder to the emulatorDbg directory on your hard drive. Opening
the Storage Card folder off the root directory on the emulator will now
point to your local drive.
2. In eVC turn off automatic program downloads (Tools, Options,
Download tab: uncheck Always download binary to the target)
3. Now just build the app on your development machine and you can
immediately run it under the emulator.
4. The JIT debugger (Build, Debug, Attach to WCE Process) even works
on the emulator process that's running off your hard drive. And as an
added bonus, it steps through code faster that way than by starting the
debugger from within eVC. (On my system, which is no slouch, it
normally takes 3 or 4 seconds between steps.)
One caveat that I found was that if the emulator-side app crashes or
you shut down the emulator with the app running, the local side still
thinks someone has a lock on the executable. This can cause problems
on your next build. So I wrote a simple batch file to copy the .exe to
a new file and the emulator runs that file. The script runs as part of
my build process (Project, Settings, Post-build step). And on the
emulator I just run the copy of the .exe instead.
-Dan.
[1] I wonder why the TCP/IP transport that downloads the app doesn't
just download the delta between the two files. It's a big waste of
time to always download the entire thing when most of the time just a
few bytes here and there have changed.