2016-09-17 79 views
2

我注意到,go build正在创造一个.exe.exe~什么是.exe〜的扩展名?

我GOOGLE了,发现什么都没有,这只是开始发生集市图书馆之一作为一个依赖于我使用的是包后。

我需要.exe~的任何东西吗?我可以删除它吗?

回答

5

在我与围棋在Windows上的经验,go build命令将创建一个.exe~ shadow文件,因为:

  1. 您以前建立的运行时间,创造了一个.exe。
  2. 您已经启动/执行了二进制文件。
  3. 之前的执行仍在运行或其他一些窗口发生的愚蠢文件锁定。
  4. 您再次尝试go build,而以前的二进制文件仍在使用中。

引擎盖下会发生什么事是go build将重命名现有执行.exe文件以.EXE〜而这是在使用,将会把新的二进制文件在.EXE下一个执行。

当20多年的所有其他Windows应用程序返回可怕的“文件正在使用”错误时,我一直对它如何使用文件着迷。

我最好的猜测是,当你执行一个go二进制文件时,执行文件不会对文件进行锁定。所以下一个版本可以简单地重命名使用中的一个。

在我的测试(2014)期间,新的.exe是最新版本,并且.exe​​〜是之前运行的版本。

我做了大量的测试,因为我的用例故意在重新编译时替换现有的二进制文件。

+0

非常丰富,谢谢! – hellyale