当我尝试使用 MSBuild 构建解决方案时,它会启动 Visual
工作室
通常,只有在调用devenv.exe 时,VS IDE 才会启动。
首先,请检查解决方案文件夹下的每个proj文件,确保proj文件中没有调用denenv.exe的bat文件或命令。
输入每个xxx.csproj或xxx.vcxproj文件,检查是否有类似以下内容:
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command=""C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe"
 
" />
</Target>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command=""C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe"
" />
</Target>
<PropertyGroup>
<PreBuildEvent>"C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\devenv.exe"</PreBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PostBuildEvent>"C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\Common7\IDE\devenv.exe"</PostBuildEvent>
</PropertyGroup>
如果是这样,您应该删除它们并让它们不调用 devenv。 devenv 将启动 VS IDE。
第二,你应该调用msbuild版本:
VS2017的MSBuild:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe
VS2019 的 MSBuild:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe
像这样在 Jenkins 上使用 MSBuild 命令行:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe xxx\MySolution.sln /t:build
除此之外,您还可以查看 Jenkins 是否有工作可拨打devenv。如果是这样,您应该删除它。