Without more context, the best answer is "It depends". Off the top of my head, I can think of these factors which would affect your decision:
- How many users use this app? What is
the bandwidth availability of these
users?
- Do you expect the users to download and install the app? Or do they need
an automatic update? Has anybody
asked for an automatic update?
- Is it a desktop app or is it a client server kind of situation?
- Have you already split up the app into components so that you can ship
just a small component, replace it in
the deployed app and expect the whole
thing to work?
Edit: Based on context in the comments: Since the app is a playing music from some online source, I'm assuming it'll need to connect to some central server to play the music. You could make a small wrapper application around the music app. You'll need to change the installer such that the wrapper app's icon appears on the desktop and any launchers you have. So the user will launch the wrapper app first instead of your music player app. The wrapper app can then contact the central server and ask for the latest version of the music app. If the installed version of the music app is older, then the wrapper app can either automatically download the latest version of the music app or prompt the user to download it or .... Once the download and install finishes the wrapper should launch the music app as well. Depending on your situation, you can get fancy and make the wrapper app download only the changed portion of the music app, etc.