我尝试使用Visual Studio 2017构建Visual Studio项目。此操作失败,错误列表显示了一些中文字符。
我已经明白这些字符是由于对MSBuild命令的误解造成的,所以我决定自己运行MSBuild命令,以便查看哪些错误消息导致中文字符和为了解决我的问题。
因此,正如" this relevant StackOverflow post"中所述,我修改了我的Visual Studio" MSBuild项目构建输出详细程度"到"详细" (我甚至把它放在" Diagnostic"),但是虽然有相当多的信息,我无法从该输出中检索MSBuild命令行。正如我在评论中提到的,我没有复选框"显示所有设置"在我的选项窗口中。
所以我尝试了其他的事情:我打开了一个命令提示符,然后我去了Visual Studio项目的位置,在那里我只是启动了命令" \ MSBuild.exe"。然而,这不是一个好主意:项目正在成功构建,并且警告的数量(864)与预期的警告数量不对应,如Visual Studio(3)的错误列表中所示,所以我是留下了两个问题:
$PATH
环境变量中没有MSBuild运行时目录)同时我发现有一个工具叫做#34; Developer命令提示符"。我已打开此工具,转到我的项目目录并启动MSBuild
。构建成功,没有错误和零警告,所以这也没有给出预期的结果。
提前致谢
答案 0 :(得分:1)
1.我的电脑上有不同的MSBuild.exe文件,我怎么知道Visual Studio正在使用哪一个? (为了您的信息,当我只是启动" MSBuild"它没有运行:我的$ PATH环境变量中没有MSBuild运行时目录)
您可以右键单击您的项目,选择" Unload Project
",然后右键单击并选择" Edit xx.csproj
"。在项目文件的顶部,您会注意到Toolversion
的声明:
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
此外,您可以使用&#34; Ctrl + F &#34;搜索关键字&#34; MSBuild
&#34;在输出窗口中(&#34; MSBuild项目构建输出详细程度&#34;到&#34;详细&#34;),您会发现更多条目为MSBuild\15.0
。
因此我们可以知道Visual Studio 2017使用了MSBuild.exe 15.0(位于C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin
)。
2.我相信在使用Visual Studio启动构建时可能会使用某些参数,如何从输出窗口中检索这些参数?
是的,在使用Visual Studio启动构建时会使用一些参数,例如,配置:Dubug/Release
;礼仪:Target Framework
。您可以使用&#34; Ctrl + F&#34;在输出窗口中检索这些参数。搜索搜索关键字。
如何检索在构建Visual Studio项目时使用的命令行 我无法从该输出中检索MSBuild命令行。
就像你提到的那样,我也找不到复选框&#34;显示所有设置&#34;在选项窗口中。但这并不影响我们从输出中检索命令行。您应该更改&#34; MSBuild项目构建输出详细程度&#34;到&#34;详细&#34;,然后构建项目,你会在输出窗口找到命令行,例如(C#项目):
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\csc.exe /noconfig /nowarn:1701,1702,2008 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE ...
后一个命令是真正的问题:运行的命令不是MSBuild.exe <something>
,而是csc.exe <something>
(C#项目)或CL.exe <something>
(C / C ++项目)。
为了使这项工作,必须从目录C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
运行编译命令,并在启动编译命令时,不应忘记双引号以处理目录名中的空格