0
A
回答
0
我想你必须将你的程序集复制到临时位置并重新启动它。像这样的东西(没有测试过):
public class Program {
static void Main() {
if (Array.IndexOf(Environment.GetCommandLineArgs(), "/unlocked") == -1) {
// We have not been launched by ourself! Copy the assembly to a temp location
// so the user can delete our original location.
string temp_location = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), Path.GetFileName(Application.ExecutablePath));
File.Copy(Application.ExecutablePath, temp_location);
Process proc = new Process();
proc.StartInfo.FileName = temp_location;
proc.StartInfo.Arguments = "/unlocked";
proc.Start();
// no more work in main, so application closes...
} else {
// else initialize application as normal...
}
}
}
0
无法删除你的文件,因为文件本身是持有(内存)中的程序代码的虚拟内存页面的后备存储。
当您的代码页由操作系统从内存中分页出去时,它不会转到页面文件,但它只是被丢弃并且(在需要时)从文件中加载回来。
我想你可以强制程序被页面文件支持(iirc,程序从CDROM等可移动媒体执行的页面文件支持),但可能最好的解决办法是将程序集复制到另一个位置,如你所建议的。
相关问题
- 1. 从WinForms应用程序解锁与解锁程序的文件?
- 2. 如何在.bat文件中执行程序后写入程序?
- 3. 生成安装程序可执行文件后添加文件
- 4. WPF C#锁定/解锁按钮并执行线程
- 5. 将解锁文件移动到新文件夹的程序
- 6. 主要可执行文件运行启动程序可执行文件,然后启动程序运行主要可执行文件
- 7. 文件夹锁定程序
- 8. “预期的锁定文件不存在,请执行”dnu restore“后立即执行
- 9. 锁定文件,而Imagick writeImage()执行
- 10. 锁定后应用程序未处于全屏状态 - 解锁
- 11. JavaScript的执行程序运行时可执行的JAR文件
- 12. 执行程序后无法打开Excel文件
- 13. 解锁正在运行的EXE文件
- 14. C文件程序不会执行fopen
- 15. 程序执行需要.OCA文件吗?
- 16. 从Java程序执行.jar文件
- 17. 从Java程序执行Kermeta文件
- 18. 在Android上运行锁定和解锁应用程序
- 19. 加载并执行程序集中的代码而不锁定文件?
- 20. 执行程序关闭后,为什么Runnable仍然在可执行的线程池执行程序中执行?
- 21. 了解已解决承诺的后续then()处理程序的执行顺序
- 22. 执行Java程序后执行的内部过程
- 23. 解锁由Excel,Word或任何程序打开的文件
- 24. 如何解锁从iPhone应用程序提取的PDF文件?
- 25. 如何在AWS S3 Helper上传文件后解锁文件?
- 26. 如何在应用程序在后台运行时收听锁定/解锁手机事件?
- 27. 使用fnctl()锁定和解锁文件进行读写(多个进程)
- 28. 解锁锁定的java文件Android studio
- 29. 用PhpStorm锁定/解锁文件
- 30. 从输入文件锁定和解锁
看看这个,是不是很相同,但类似:http://stackoverflow.com/questions/1305428/self-deletable-application-in-c-sharp-in-one-executable – Alpha 2012-01-15 21:35:57
当文件完成执行,用户应该能够删除它。 – Oded 2012-01-15 21:40:31
我假设你问“执行开始后”?因为“执行后”通常意味着程序退出后,这应该是微不足道的,因为Oded指出。 – 2013-06-20 09:10:38