0

我正在使用使用 C++ 的 Visual Studio 2017。

msbuild /p:configuration=release我可以在命令行上构建发布二进制文件。当尝试使用 构建另一个进程system( "msbuild C:\\Users\\Chili\\Desktop\\Projects\\TestHarness\\TestHarness.sln /p:configuation=release" )时,它会构建一个 Debug 二进制文件。

当使用(从不同的工作目录)从命令行构建时msbuild C:\\Users\\Chili\\Desktop\\Projects\\TestHarness\\TestHarness.sln /p:configuation=release,我还获得了 Debug exe。我还尝试更改工作目录,然后从我的进程中调用msbuild /p:configuration=release,但它只提供 Debug 二进制文件。此外,我注意到从命令行msbuild /p:configuration=invalid会给出一个错误,而msbuild /p:configuration=invalid从我的进程不会给出任何错误(再次,构建调试)。但是,我确实知道命令行参数正在到达 msbuild,因为如果我msbuild /invalid:configuration=invalid从我的进程中尝试例如,我确实会收到有关开关的错误。

编辑事实上,它似乎完全忽略了 /p /property -property 开关,因为我可以做 /property:bad=food 并且它不会让人眼前一亮。

有谁知道是什么导致了从命令行调用和从进程调用之间的这种差异?

4

0 回答 0