WOW64 - 从 Visual Studio 中运行 powershell
有人可以简单地解释一下,为什么需要经历这么多麻烦才能从 Visual Studio 运行 PowerShell(作为外部命令)?我知道这与位差异有关,但不明白为什么。如果我没记错的话,上下文是 System32 文件夹中的 64 位 Windows 7 操作系统、32 位 Visual Studio 和 32 位 powershell。 64 位操作系统可以毫无问题地运行 32/64 应用程序,那么这里的问题是什么?为什么?
通过互联网搜索,我相信这与 WOW64 有关,因此有这个标签,但我不太确定。我知道操作系统模拟旧的 32 位软件,但我不明白为什么 VS 无法运行启动 powershell 的命令,而无需经过一系列的操作,例如添加“...Native...”文件夹(根据该文件夹)。我们的教练实际上并不存在)到路径。
希望这不会令人困惑。
Can someone please explain, simply, why it is necessary to go through so many hoops in order to run PowerShell (as an external command) from visual studio? I know it has to do with the bit differences but don't get why. The context is a 64 bit Windows 7 OS, 32 bit Visual Studio, and 32 bit powershell from the System32 folder if I remember correctly. A 64 bit OS can run both 32/64 applications without problems, so what is the issue here, and why?
By internet searching I believe this has something to do with WOW64, hence the tag, but I'm not really sure. I know the OS emulates the old 32 bit software but I don't see why VS can't run the command to start powershell without going through hoops, such as adding a '...Native...' folder (that acc. to our instructor doesn't actually exist) to the path.
Hope that isn't confusing.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Visual Studio是32位进程,没有64位版本。当您要求它运行 c:\windows\system32 中的某些内容时,Windows 会将请求重定向到 c:\windows\syswow64。所有 32 位 Windows 可执行文件的所在地。
使用 %windir%\sysnative 代替是解决方法,它被重定向到 c:\windows\system32。
文件系统重定向器此处进行了描述 。
Visual Studio is a 32-bit process, there is no 64-bit version. When you ask it to run something from c:\windows\system32, Windows will redirect the request to c:\windows\syswow64. The home of all 32-bit Windows executables.
Using %windir%\sysnative instead is the workaround, that gets redirected to c:\windows\system32.
The file system redirector is described here.