移动当前可执行文件 c#
Posted
技术标签:
【中文标题】移动当前可执行文件 c#【英文标题】:Move current executable c# 【发布时间】:2016-06-03 20:55:39 【问题描述】:我想将当前正在执行的程序集移动到 C 盘。当我尝试以下代码时:
File.Move(Assembly.GetEntryAssembly().Location, @"c\");
它给了我一个错误:
在 mscorlib.dll 中发生了“System.UnauthorizedAccessException”类型的未处理异常
这可以解决吗?
【问题讨论】:
您无法移动当前的可执行文件,因为系统正在打开它。 正在运行的程序的EXE不能移动,但是可以复制。 你得到什么异常? @duDE mscorlib.dll 中出现“System.UnauthorizedAccessException”类型的未处理异常 @Gewoo:很高兴知道! 【参考方案1】:您必须为目标文件提供一个名称:
File.Move(Assembly.GetEntryAssembly().Location, @"c:\xxx\foo.exe");
(写在C的根部:需要提升)
【讨论】:
[已测试] 我不敢相信它真的有效;它复制并删除了原始文件。 :O 什么都没有被删除——你不能删除正在运行的可执行文件,但移动就是重命名,它只是对文件系统的更新,这不会干扰正在运行的映像。 @AlexK。 ,我有一个问题 - 这可以更新应用程序吗?说,我将文件移动到 .bak,创建一个新的 .exe,然后做Application.Restart();
?还是我错过了什么:D以上是关于移动当前可执行文件 c#的主要内容,如果未能解决你的问题,请参考以下文章