در ویندوز یه Folder داریم به اسم Temp که برای فایل های موقت استفاده میشه.Resource شما هم احیانا، یک آرایه از بایت هست.میتونید با System.IO.Path.GetTempPath آدرس پوشه Temp رو بدست بیارید (با یک نام یکتا و فرمت مورد نظر ترکیبش کنید تا اسم کامل فایل بدست بیاد)، با System.IO.File.WriteAllBytes، محتویات Resource رو توی فایل بریزین و با استفاده از متد Start از کلاس System.Diagnostincs.Process فایل مورد نظر رو اجرا کنید.
string tempFileName = System.IO.Path.Combine(System.IO.Path.GetTempPath( ), Guid.NewGuid().ToString() + ".exe");
System.IO.File.WriteAllBytes(tempFileName, Properties.Resources.MyResourceFile);
System.Diagnostincs.Process process = new System.Diagnostincs.Process();
process.Start(tempFileName);
کد رو دستی نوشتم ممکنه خطای نگارشی داشته باشه...در ضمن، آخرش کاربری که پیگیر باشه میتونه exe رو پیدا کنه...