为什么 oscdimg.exe, Under Visual Studio, 不被识别为内部或外部命令、可运行程序或批处理文件
Why is oscdimg.exe, Under Visual Studio, not recognized as an internal or external command, operable program or batch file
在 Visual Studio(2015 年和 2017 年)我有一个批处理文件,我在 AfterBuild 上 运行。
<Target Name="AfterBuild">
<Exec Command=""$(ProjectDir)\test.bat"" WorkingDirectory="$(ProjectDir)" />
</Target>
在批处理文件里面是很简单的一行
"%SYSTEMROOT%\System32\oscdimg.exe" -n -m "%~dp0.\bin" -l"testdisk" "%~dp0\test.iso"
当我 运行 批处理文件本身(简单地双击 bat 文件)时,它会按需运行。
但是,当 Visual Studio 进入 AfterBuild 时,出现以下错误。
'"C:\WINDOWS\System32\oscdimg.exe"' is not recognized as an internal or external command,
operable program or batch file.
有人知道为什么会这样吗? visual studio AfterBuild 有限制吗?即使我在 oscdimg.exe 周围使用额外的双引号(因为没有空格)错误也不会消失。
如有任何帮助,我们将不胜感激。
谢谢
感谢 我能够找到这个问题的原因。
让我引用他的话
VS may be a 32 bit app. Consequently "C:\WINDOWS\System32" is getting redirected to "C:\Windows\SysWOW64" and oscdimg.exe probably is not there. Try using this: "C:\Windows\Sysnative\oscdimg.exe" See www.samlogic.net/articles/sysnative-folder-64-bit-windows.htm – RGuggisberg
所以我决定 运行 来自 VS AfterBuild 的命令提示符的 64 位版本。
<Target Name="AfterBuild">
<Exec Command="%windir%\sysnative\cmd.exe /c "$(ProjectDir)\test.bat"" WorkingDirectory="$(ProjectDir)" />
</Target>
我这样做是为了避免更改可能 运行ning 本身的批处理文件(意味着 运行ning 来自 64 位资源管理器)
在 Visual Studio(2015 年和 2017 年)我有一个批处理文件,我在 AfterBuild 上 运行。
<Target Name="AfterBuild">
<Exec Command=""$(ProjectDir)\test.bat"" WorkingDirectory="$(ProjectDir)" />
</Target>
在批处理文件里面是很简单的一行
"%SYSTEMROOT%\System32\oscdimg.exe" -n -m "%~dp0.\bin" -l"testdisk" "%~dp0\test.iso"
当我 运行 批处理文件本身(简单地双击 bat 文件)时,它会按需运行。
但是,当 Visual Studio 进入 AfterBuild 时,出现以下错误。
'"C:\WINDOWS\System32\oscdimg.exe"' is not recognized as an internal or external command, operable program or batch file.
有人知道为什么会这样吗? visual studio AfterBuild 有限制吗?即使我在 oscdimg.exe 周围使用额外的双引号(因为没有空格)错误也不会消失。
如有任何帮助,我们将不胜感激。
谢谢
感谢
VS may be a 32 bit app. Consequently "C:\WINDOWS\System32" is getting redirected to "C:\Windows\SysWOW64" and oscdimg.exe probably is not there. Try using this: "C:\Windows\Sysnative\oscdimg.exe" See www.samlogic.net/articles/sysnative-folder-64-bit-windows.htm – RGuggisberg
所以我决定 运行 来自 VS AfterBuild 的命令提示符的 64 位版本。
<Target Name="AfterBuild">
<Exec Command="%windir%\sysnative\cmd.exe /c "$(ProjectDir)\test.bat"" WorkingDirectory="$(ProjectDir)" />
</Target>
我这样做是为了避免更改可能 运行ning 本身的批处理文件(意味着 运行ning 来自 64 位资源管理器)