执行bower安装时Visual Studio Online MSBuild失败

执行bower安装时Visual Studio Online MSBuild失败,msbuild,bower,azure-devops,bower-install,Msbuild,Bower,Azure Devops,Bower Install,我有一个简单的web项目,包含bower.json、package.json和gruntile.js 我修改了.csproj文件以添加要运行的目标 npm安装 凉亭安装 咕噜声 npm安装运行正常,但无法运行bower安装。 这是我从日志中得到的所有信息 node_modules\.bin\bower cache clean node_modules\.bin\bower install C:\a\src\TestProj\TestProj\TestProj.csproj(137,5): er

我有一个简单的web项目,包含bower.json、package.json和gruntile.js 我修改了.csproj文件以添加要运行的目标

  • npm安装
  • 凉亭安装
  • 咕噜声
  • npm安装运行正常,但无法运行bower安装。 这是我从日志中得到的所有信息

    node_modules\.bin\bower cache clean
    node_modules\.bin\bower install
    
    C:\a\src\TestProj\TestProj\TestProj.csproj(137,5): error MSB3073: The command ".\node_modules\.bin\bower install" exited with code 1.
    
    以下是我在csproj定义中所做的

    <Target Name="BeforeBuild">
        <Exec Command="npm cache clean" />
        <Exec Command="npm install" />
        <Exec Command="node_modules\.bin\bower cache clean" />
        <Exec Command="node_modules\.bin\bower install" />
    </Target>
    

    首先,启用诊断日志记录

    然后修改您的目标:

    <Target Name="BeforeBuild">
        <Exec Command="npm cache clean" />
        <Exec Command="npm install" />
        <Message Condition="!EXISTS('node_modules\.bin\bower')" Text="bower does not exist" Importance="high" />
        <Exec Command="node_modules\.bin\bower cache clean" />
        <Exec Command="node_modules\.bin\bower install" />
    </Target>
    

    您应该能够下载一个附加的MSBuild日志文件,其中可能包含更多详细信息。如果查看以前失败的构建,请单击顶部的“查看日志”链接,然后查看详细信息,您应该会在错误消息几行之后看到日志文件的链接


    如果我不得不从头开始猜测的话,你会发现这个错误,因为git不可用。

    bower安装失败,因为我安装的两个模块依赖于不同版本的jQuery,无法找到解决方案,需要用户输入。通过提供一个resolution部分来修复它。

    我能够通过注释.csproj文件中的bower install命令来解决这个问题

      <Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
        <!--<Exec Command="bower install" />-->
        <Exec Command="dotnet bundle" />
      </Target>
    

    通过删除.csproj文件中下面的代码为我工作

    <Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
    <Exec Command="bower install" />
    <Exec Command="dotnet bundle" />
    
    
    

    但是,它确实导致了两个方法名重复的typescript问题,请将下面的代码添加到tsconfig.json文件中

    “排除”:[
    “obj”
    
    ]

    启用诊断日志记录,然后从那里开始。bower在那里,因为缓存清理工作正常。bower安装失败。我将启用诊断日志并让您知道。除了诊断日志中提供的内容外,没有其他内容。我正在尝试通过PowerShell脚本使其正常工作。当脚本尝试运行bower安装时,npm安装工作正常。安装失败,出现错误:git未安装或不在路径中。不确定它是否有助于从PowerShell脚本进行安装,但我使用从msbuild脚本进行安装。我已将NoGit添加到我的packages.json中,但这没有帮助。我也犯了同样的错误。
    <Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
    <Exec Command="bower install" />
    <Exec Command="dotnet bundle" />