<p>I'd like my .NET Compact Framework app to delete itself after it finishes executing.  What's the best way to do this?</p>

<p>On a Windows machine it's possible to do this using a .bat file, but that's not an option on mobile devices.</p>

One idea is you could use wceload:
http://msdn.microsoft.com/en-us/library/bb158700.aspx
Write a cab file that has a custom step (I think you might need to create a setup.dll) that will delete your application.
Get your application to call wceload when it exits to run this cab, passing the argument for wce load to delete the cab after it's finished running.
Not very slick I know.