首页 > 解决方案 > 在 .NET 4.71 项目中发布 Angular 应用程序

问题描述

我正在开发一个带有集成 Angular 应用程序的遗留 ASP.NET 项目,该应用程序的结构与常规 ASP.NET Core Angular 模板(ClientApp 文件夹、Program.cs 和 Startup.cs 文件等)基本相同,除了事实上,它的目标是 .NET Framework 4.71 而不是 .NET Core。该项目是通过运行 docker 命令部署的,这些命令最终调用 dotnet publish 并附加调用 npm install、npm run build、CP 以复制新生成的文件等。

我一直在徘徊,只保留 dotnet 命令行并处理 csproj 文件中的后续操作。经过长时间的搜索,我发现的所有文档案例都使用了以下目标(或类似目标):

<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
  <!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
  <Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
  <Exec WorkingDirectory="$(SpaRoot)" Command="npm run build" />
​
  <!-- Include the newly-built files in the publish output -->
  <ItemGroup>
    <DistFiles Include="$(SpaRoot)build\**" />
    <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
      <RelativePath>%(DistFiles.Identity)</RelativePath>
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
      <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
    </ResolvedFileToPublish>
  </ItemGroup>
</Target>

这里的问题是“ComputeFilesToPublish”目标似乎在​​ .NET 4.71 中不可用,因此永远不会触发“PublishRunWebpack”。现在我的问题是:如何在 .NET 4.71 上获得相同的结果?有什么办法还是我只是在浪费时间?

标签: .netangular

解决方案


推荐阅读