我正在使用VS2013(c#项目),而在Post Build Event
我有以下命令
Xcopy "$(SolutionDir)Lib" "$(SolutionDir)Exe_path\Lib\" /s /e /y
call "$(VS120COMNTOOLS)..\tools\vsvars32.bat"
editbin /largeaddressaware "$(TargetPath)"
一切运行良好,然后我重新启动我的电脑(通过一些与Windows政策相关的修改,例如禁用编辑与我的项目无关的注册表中的某些值)。
重新启动PC后,我尝试编译应用程序,但是我遇到了两个错误:
错误1:
Cannot determine the location of the VS Common Tools folder.
第二个是:
The command "call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\..\tools\vsvars32.bat"
editbin /largeaddressaware "my_exe_path"" exited with code 9009
我知道Error Code 9009
表示找不到错误文件,但vsvars32.bat
存在,路径正确,所有其他路径都正确,我的意思是$(SolutionDir)Lib
和{{ 1}}是正确和存在的。
我尝试了here的一些解决方案,如:
$(SolutionDir)Exe_path\Lib\
但是我得到完全相同的错误信息。
此外,我尝试编写Xcode的完整路径,如
call "$(DevEnvDir)..\Tools\vsvars32.bat"
同样的错误。
我还会检查环境路径中的c:\windows\system32\xcopy.exe "$(SolutionDir)Lib" "$(SolutionDir)\ExepathLib\" /s /e /y
call "$(VS120COMNTOOLS)..\tools\vsvars32.bat"
editbin /largeaddressaware "$(TargetPath)"
,并根据一些建议的解决方案here包含PATH
。
最有可能的是,当应用新的Windows策略时,它会影响reg,但我不确定这是否正确。
导致此问题发生的最可能原因是什么,以及解决问题的建议是什么。
修改
我尝试打开C:\WINDOWS\system32;
并显示错误消息,它是相同的错误消息
VS2012 x64 Native Tools Command Prompt
所以我检查了ERROR: Cannot determine the location of the VS Common Tools folder.
并且它包含
vcvars32.bat
这意味着,如果它找不到@if "%VS120COMNTOOLS%"=="" goto error_no_VS120COMNTOOLSDIR
环境变量,那么它将转到VS120COMNTOOLS
error_no_VS120COMNTOOLSDIR
所以我认为这很可能是因为win策略系统阻止在环境变量中编辑@echo ERROR: Cannot determine the location of the VS Common Tools folder.
值。