在Windows上安装:“访问被拒绝”

时间:2013-01-24 21:53:21

标签: windows-8 go goinstall

我是Go的编程新手。我真的很想帮助你解决我的一个问题。

我需要在文件上执行 go install ,其文件的可执行文件(在Windows中)是在名为 GOPATH \ bin 的文件夹中创建的。

到目前为止,我通常遵循例程:go install <file>.go ---&gt; <file>.exe。 但是,这次似乎在执行<file>.exe之后,exe没有完成执行一段时间,当我再次安装时,我收到以下错误。< / p>

  

C:\ Users \ Rahul \ Desktop \ Compilers \ src \ cs553s2013 \ mylexer&gt; go install   is_digit.go go install命令行参数:打开   C:\ Users \ Rahul \ Desktop \ Compilers \ bin \ is_ digit.exe:访问被拒绝。

1 个答案:

答案 0 :(得分:1)

请参阅http://grokbase.com/t/gg/golang-nuts/135fyje5d9/go-nuts-go-build-access-is-denied-windows-7x64

绝对不知道为什么,但上述建议有效。必须在Windows 7上启用“应用程序体验”Windows服务才能解决此问题。

我禁用了这项服务,并且在我的项目的二进制文件上看到类似的奇怪的2-3分钟“权限被拒绝”(通过alt + F2 $ GOPATH / bin刷新后,二进制文件也会消失Eclipse + Goclipse构建我的二进制文件的$ GOPATH / bin的Windows资源管理器视图。我注意到,在执行之后,在二进制文件最终消失之前,它被更改为由某个未知用户拥有(在资源管理器中,它不归编译用户,管理员甚至是SYSTEM所有)。

我只能推测 - 也许Windows在文件系统上保留任何.exe,如果它已经退出而没有某种未记录的'all-OK'状态到windows内核,假设它“崩溃”,那么应用程序体验服务可以将其作为诊断数据发送给Microsoft - 如果禁用该服务,则应用程序体验服务无法完成NTFS或资源管理器等待允许该文件被后续编译覆盖的任何握手。所以golang .exe位于那里,具有提升的权限,有一些系统/未定义的用户,Eclipse无法删除,直到Explorer做了一些事情来标记它肯定已经死了。