Если вы используете пакет osext от kardianos и вам нужно тестировать локально, как прокомментировал Дерек Даулинг:
Это прекрасно работает, пока вы не захотите использовать его с go run main.go для локальной разработки. Не уверен, как лучше обойти это, не создавая исполняемый файл заранее каждый раз.
Решением этой проблемы является создание утилиты gorun.exe вместо использования go run. Утилита gorun.exe скомпилирует проект, используя «go build», а затем сразу же запустит его в обычном каталоге вашего проекта.
У меня была эта проблема с другими компиляторами, и я обнаружил, что создаю эти утилиты, так как они не поставляются вместе с компилятором ... это особенно непонятно с такими инструментами, как C, где вам нужно скомпилировать и связать, а затем запустить его (слишком много работы).
Если кому-то нравится моя идея gorun.exe (или elf), я, скорее всего, скоро выложу его на github.
Извините, этот ответ подразумевается как комментарий, но я не могу комментировать, потому что у меня пока недостаточно высокая репутация.
В качестве альтернативы, «go run» можно изменить (если он еще не имеет этой функции), чтобы иметь такой параметр, как «go run -notemp», чтобы не запускать программу во временном каталоге (или что-то подобное). Но я бы предпочел просто набрать gorun или «gor», так как он короче запутанного параметра. Gorun.exe или gor.exe должны быть установлены в том же каталоге, что и ваш компилятор go
Реализация gorun.exe (или gor.exe) была бы тривиальной, как я сделал это с другими компиляторами всего в нескольких строках кода ... (известные последние слова ;-)