Se você usa o pacote osext da kardianos e precisa testar localmente, como comentou Derek Dowling:
Isso funciona bem até que você queira usá-lo com vá em main.go para desenvolvimento local. Não tenho certeza da melhor forma de contornar isso sem criar previamente um executável a cada vez.
A solução para isso é criar um utilitário gorun.exe em vez de usar go run. O utilitário gorun.exe compila o projeto usando "go build" e depois o executa no diretório normal do seu projeto.
Eu tive esse problema com outros compiladores e me vi criando esses utilitários, pois eles não são fornecidos com o compilador ... é especialmente arcano com ferramentas como C, nas quais você precisa compilar e vincular e depois executá-lo (muito trabalho).
Se alguém gostar da minha idéia do gorun.exe (ou elf), provavelmente o carregarei no github em breve ..
Desculpe, esta resposta é um comentário, mas não posso comentar porque ainda não tenho uma reputação grande o suficiente.
Como alternativa, "go run" pode ser modificado (se já não tiver esse recurso) para ter um parâmetro como "go run -notemp" para não executar o programa em um diretório temporário (ou algo semelhante). Mas eu preferiria apenas digitar gorun ou "gor", pois é mais curto que um parâmetro complicado. Gorun.exe ou gor.exe precisaria ser instalado no mesmo diretório do seu compilador go
A implementação de gorun.exe (ou gor.exe) seria trivial, como fiz com outros compiladores em apenas algumas linhas de código ... (famosas últimas palavras ;-)