启动IIS调试时执行ng服务(VS社区)

时间:2019-04-05 13:32:01

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

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

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

实际上,我必须打开一个cmd,执行ng serve,然后启动IIS。

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

3 个答案:

答案 0 :(得分:1)

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

构建后,您可以将命令authData称为构建后事件。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

1。就像adiii4的建议一样。 您可以将构建后事件称为替代方法。将ng serve命令复制到构建事件后文本框中。

2。要实现此目标:execute ng serve command when i start IIS Express

由于我们可以运行IIS express from command-line,因此可以在this issue之类的换行符中将这两个命令添加到构建后事件中。

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

例如:我们将在底部找到PostBuild目标,添加一个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>

更新

当我们在构建后事件中添加一些内容时,目标“ PostBuild”将自动添加到xxx.csproj文件中(以下格式适用于asp.net核心网络应用)。

我们可以在构建引擎运行PostBuild目标之后添加如下所示的自定义脚本来执行另一个目标。对于您的情况,ngserve.bat用于ng服务,而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>

enter image description here

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