【问题标题】:When I tried to build my solution using MSBuild, its launches Visual Studio当我尝试使用 MSBuild 构建解决方案时,它会启动 Visual Studio
【发布时间】:2020-12-07 15:05:18
【问题描述】:

我正在尝试使用 MSBUILD 构建解决方案。它不构建解决方案,而是启动 Visual Studio。

E:\MyProject> <path to MSBuild>\msbuild.exe MySolution.sln

我从 Jenkins 调用 Msbuild 步骤,由于上述问题,它被卡住了。 有谁能帮帮我吗?

【问题讨论】:

标签: c# c++ .net visual-studio msbuild


【解决方案1】:

当我尝试使用 MSBuild 构建解决方案时,它会启动 Visual 工作室

通常,只有在调用devenv.exe 时,VS IDE 才会启动。

首先,请检查解决方案文件夹下的每个proj文件,确保proj文件中没有调用denenv.exe的bat文件或命令。

输入每个xxx.csprojxxx.vcxproj文件,检查是否有类似以下内容:

    <Target Name="PreBuild" BeforeTargets="PreBuildEvent">
        <Exec Command="&quot;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe&quot;&#xD;&#xA; &#xD;&#xA;" />
      </Target>
    
      <Target Name="PostBuild" AfterTargets="PostBuildEvent">
        <Exec Command="&quot;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe&quot;&#xD;&#xA;" />
      </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>

如果是这样,您应该删除它们并让它们不调用 devenvdevenv 将启动 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。如果是这样,您应该删除它。

【讨论】:

  • 单独执行 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" 会打开 Visual Studio。 proj 文件中也没有 devenv。
  • 很奇怪,它不会在我身边执行VS IDE。请尝试repair VS 或禁用Extensions-->Manage Extensions 下的任何第三方扩展,以检查是否某些扩展导致这种情况。
猜你喜欢
  • 2015-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多