【问题标题】:Move current executable c#移动当前可执行文件 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:很高兴知道!

标签: c#


【解决方案1】:

您必须为目标文件提供一个名称

File.Move(Assembly.GetEntryAssembly().Location, @"c:\xxx\foo.exe");

(写在C的根部:需要提升)

【讨论】:

  • [已测试] 我不敢相信它真的有效;它复制并删除了原始文件。 :O
  • 什么都没有被删除——你不能删除正在运行的可执行文件,但移动就是重命名,它只是对文件系统的更新,这不会干扰正在运行的映像。
  • @AlexK。 ,我有一个问题 - 这可以更新应用程序吗?说,我将文件移动到 .bak,创建一个新的 .exe,然后做 Application.Restart(); ?还是我错过了什么:D
猜你喜欢
  • 1970-01-01
  • 2017-04-16
  • 2018-10-17
  • 2012-12-18
  • 2017-04-20
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
相关资源
最近更新 更多