在Python脚本中调用msbuild

1 投票
1 回答
4675 浏览
提问于 2025-04-17 13:41

你好,我想在 Python 脚本中执行 msbuild。

因为我不是在 Visual Studio 的开发者命令提示符下运行,所以我执行了

 "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"

然后我做了

  msbuild example.props

我该如何在 Python 中运行这个呢?我尝试过这样做

 subprocess.call('\"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\\vcvarsall.bat\"\n')

然后调用

 subprocess.call(['msbuild', filename]) # filename is string variable

但是我收到一个错误,提示找不到指定的文件……我很确定应该有办法做到这一点,但我找不到方法……谢谢你的帮助!

1 个回答

1

因为你在调用时没有使用 shell=True 这个选项,所以每次调用都是相互独立的。因此,执行 .bat 文件对第二次调用没有影响。你需要在两个调用中都加上 shell=True,这样第一次调用才能影响到第二次调用。

注意: 我在这里推荐使用 shell=True 是因为很明显这个代码只在一个平台上运行(Windows),所以不会有跨平台的问题。

撰写回答