【问题标题】:Execute ng serve when I start IIS debug (VS community)启动 IIS 调试时执行 ng serve(VS 社区)
【发布时间】:2019-08-27 10:16:11
【问题描述】:

我实际上有一个带有 Angular 5 (Angular CLI) 的 ASP.NET 项目。

我的问题是,当我启动 IIS Express 时可以执行 ng serve 命令吗?

其实我得打开一个cmd,执行ng serve,然后启动IIS。

如果有人对此有解决方案,非常感谢:)

【问题讨论】:

  • 你好朋友,这个问题有更新吗?
  • 刚刚更新了您的评论
  • 嗨,this 之类的东西可能会给你一些帮助。

标签: angular visual-studio debugging visual-studio-2017 angular-cli


【解决方案1】:

您必须运行“ng build”,然后将文件/文件夹从 angular cli 的“dist”文件夹部署到 ISS

【讨论】:

    【解决方案2】:

    一种方法是在 Visual Studio 中使用build events

    在构建之后,您可以调用命令 ng serve 作为构建后事件。

    【讨论】:

      【解决方案3】:

      1.就像 adiii4 建议的那样。 您可以调用 post-build-event 作为替代方式。将 ng serve 命令复制到构建后事件文本框中。

      2.实现这个目标:execute ng serve command when i start IIS Express

      既然我们可以运行IIS express from command-line,你可以在post-build-event中添加这两个命令,比如this issue

      3.另外,每次构建项目时都会运行一个构建后事件。(无论是调试还是发布模式) 我不确定这是否满足您的需求,我们可以通过右键单击 Project=>Unload Project=>Edit xxx.csproj 对其进行自定义。

      例如:我们会在底部找到 PostBuild Target,添加 Condition=" '$(Configuration)' == 'Debug' " 可以帮助控制 only in debug mode 执行 ng serve 命令并启动 IIS Express,如下所示:

      <Target Name="PostBuild" AfterTargets="PostBuildEvent"  Condition="'$(Configuration)'=='Debug'">
          <Exec Command="here commad1:call test.exe&#xD;&#xA;here command2:xxx.exe xxx" />
      </Target>
      

      更新:

      当我们在 post-build-event 中添加内容时,Target "PostBuild" 将自动添加到 xxx.csproj 文件中(以下格式适用于 asp.net core web app)。

      在构建引擎运行 PostBuild 目标之后,我们可以添加如下所示的自定义脚本来执行另一个目标。对于您的情况,ngserve.bat 用于 ng serve,而 startIIS.bat 用于启动 IIS。

        <Target Name="PostBuild" AfterTargets="PostBuildEvent">
          <Exec Command="call ngserve.bat" />
        </Target>
      
        <Target Name="StartIIS" AfterTargets="PostBuild">
          <Exec Command="call startIIS.bat"/>
        </Target>
      

      另外:在VS中,我们可以go Tools=&gt;options=&gt;Projects and solutions=&gt;Build and runchange the msbuild project build output verbositydetailed。之后,每次构建解决方案或项目时,我们都可以看到有关构建过程的详细信息,这有助于故障排除。

      【讨论】:

      • 感谢您的评论。我使用带有 bat 文件的构建后事件,但现在 iis 没有启动。我认为这是因为 ng serve 从未关闭并且 iis 正在等待 bat 文件。你知道如何在后台启动我的 bat 文件吗?谢谢;)
      • @Heroz bat 文件的内容是什么?您的意思是您使用构建后事件执行 bat(用于 ng serve),然后以哪种方式启动 IIS?作为构建后的命令 2 还是手动启动?
      • 您好,很抱歉耽搁了时间,感谢您的帮助。我的 bat 文件包含命令“ng serve”。使用它=>“右键单击项目=>构建事件并设置“CALL ngServe.bat”。之后我运行我的解决方案但实际上是阻塞的。我正在检查你的更新
      猜你喜欢
      • 2018-02-07
      • 2017-02-11
      • 2018-05-29
      • 1970-01-01
      • 2018-06-15
      • 2021-08-07
      • 2019-06-26
      • 2021-11-05
      • 1970-01-01
      相关资源
      最近更新 更多