Hm, wenn Deine Anwendung wirklich nur aus einer Datei besteht und Du da nicht exzessiv rumdoktorn willst, dann wäre es am einfachsten Du checkst nach dem Vorhandensein eines Updates und überprüfst dann ob Du Admin Rechte hast. Falls nicht, forderst Du diese an (indem Du Dich selbst mit Administratorrechten neu startest z.B.) bzw. bittest den User Dich als Admin zu starten. Falls Du Admin Rechte hast, kannst Du die Datei direkt ersetzen.
Zu überprüfen ob Du in einem Verzeichnis Schreibrechte hast oder nicht wäre für mich als Pragmatiker relativ einfach:
Ich probier in dem Verzeichnis was zu schreiben*. Wenns klappt, prima. Wenns nicht klappt, hab ich offensichtlich keine Rechte dazu. Da der Administrator aber ohnehin immer Rechte hat (bzw. sie sich besorgen kann), wäre so ein expliziter Check eher nicht notwendig, sofern der Update Code an sich korrektes Fehlerhandling betreibt.
* Das Ganze stimmt so nicht ganz. Windows Vista führt bei aktivierter
UAC für sogenannte "Legacy Applications" Dateisystemvirtualisierung durch. Das bedeutet das wenn eine Legacy Application versucht im Programme Ordner zu schreiben, werden die Dateioperationen stattdessen in einen Ordner im Userprofil durchgeführt. Der Check funktioniert bei "Legacy Applications" also nicht. Legacy Applications sind dabei 32bit Anwendungen ohne Manifest bzw. Anwendungen die in der Compatibility Database von Vista explizit als Legacy markiert sind.