在ASP.NET核心应用程序中,"bower install"退出代码9009

Ris*_*abh 20 asp.net-core-mvc

我正面临一个问题

命令"bower install"退出代码9009

同时使用实体框架发布ASP.NET核心MVC应用程序.我正在使用VS-2017.

我在你的node.js全球下载门户网站上收到了很多建议,但由于我对这个系统很新,我不知道该怎么做.或者,如果有任何其他解决方案,请告诉我.

小智 29

  1. 确保安装Node.js的.
  2. 通过在cmd中执行以下命令全局安装bower:

    npm install -g bower

  3. 关闭Visual Studio,然后打开它并再试一次.

  • 值得一提的是,需要安装Node.js才能做到这一点. (3认同)

小智 11

什么对我有用.

我去了项目文件(在VS-2017资源管理器中你可以右击它并编辑它)

然后我删除(或评论)了Target节点

  <Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
    <Exec Command="bower install" />
    <Exec Command="dotnet bundle" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

一切都很好,没有安装任何其他东西.

  • 但是如果你需要bower在你的asp.net代码中安装客户端依赖项呢?作为`dotnet publish`的一部分? (4认同)

Rya*_*vin 10

通过删除项目文件中的以下代码也为我工作.

<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="bower install" />
<Exec Command="dotnet bundle" />
Run Code Online (Sandbox Code Playgroud)

但是它确实导致了一些带有重复方法名称的打字稿问题,将以下代码添加到tsconfig.json文件中

"exclude": [ "obj" ]


tru*_*oda 7

这是Visual Studio的一个错误.Visual Studio应使用选项中定义的NodeJS(项目和解决方案/ Web包管理/外部Web工具).我不知道为什么,但它没有使用内部工具(路径:$ VSINSTALLDIR/web/External)来获取csproj文件中的预发布脚本.

1)您需要安装NodeJS和Npm globaly.还要检查外部Web工具中的"$ PATH"选项是否已选中.如果您在preublish scipts中使用bower或任何其他节点工具,则必须将其安装在全球范围内.

npm install -g bower
npm install -g gulp
Run Code Online (Sandbox Code Playgroud)

2)另一种方式.您可以从csproj文件中删除适当的"Exec"部分,并且只需手动执行preublish操作.通常不需要那么频繁.