Go 什么是.exe~扩展名?

Go 什么是.exe~扩展名?,go,bazaar,Go,Bazaar,我注意到,go build正在创建一个.exe和一个.exe ~ 我在谷歌上搜索了一下,什么也没发现,这是在一个bazaar库被用作我正在使用的包的依赖项之后才开始发生的 我需要.exe ~做什么吗?我可以删除它吗 根据我使用Go-on Windows的经验,Go-build命令将创建一个.exe卷影文件,因为: 您以前构建了运行时并创建了.exe 您已经启动/执行了二进制文件 上一次执行仍在运行,或者发生了其他愚蠢的windows文件锁定 当上一个二进制文件仍在使用时,您尝试再次执行编译 引擎

我注意到,
go build
正在创建一个
.exe
和一个
.exe ~

我在谷歌上搜索了一下,什么也没发现,这是在一个bazaar库被用作我正在使用的包的依赖项之后才开始发生的


我需要
.exe ~
做什么吗?我可以删除它吗

根据我使用Go-on Windows的经验,
Go-build
命令将创建一个
.exe
卷影文件,因为:

  • 您以前构建了运行时并创建了.exe
  • 您已经启动/执行了二进制文件
  • 上一次执行仍在运行,或者发生了其他愚蠢的windows文件锁定
  • 当上一个二进制文件仍在使用时,您尝试再次执行编译
  • 引擎盖下发生的事情是,
    go-build
    将在使用时将现有的已执行的.exe重命名为.exe~,并将新的二进制文件放置在.exe以供下次执行

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

    我的最佳猜测是,当您执行go二进制文件时,执行不会对文件设置文件锁。因此,下一个构建可以简单地重命名正在使用的构建

    在我的测试(2014年)中,new.exe是最新版本,而.exe~是正在运行的先前版本

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