Копировать файлы клиента при публикации

В веб-приложении Net Core 7 мне нужно создать несколько клиентских скриптов (JS и LESS).

Скрипты находятся в «./approot», и когда я запускаю командуnpm run buildготово:

  1. Создайте файлы в «./approot» и сохраните вывод в «./approot/dist».
  2. Удалите папку "./webroot" со всем ее содержимым.
  3. Создайте новый «./webroot» и скопируйте все файлы из «./approot/dist» в «./webroot».

Итак, в файле проекта .csproj у меня есть следующее:


Когда я публикую приложения, шаги (1) и (2) выполняются.

Однако папка «./webroot» не копируется в папку публикации.

Поэтому, когда я загружаю веб-приложение на сервер, клиентские файлы не найдены.

Что я делаю не так?

ОБНОВЛЕНИЕ Единственный способ, которым я могу выполнить эту работу, - использовать:

        <Target Name="Copy Webroot" BeforeTargets="AssignTargetPaths" DependsOnTargets="PrepareForPublish">
    <Exec Command="npm install" />
    <Exec Command="npm run build" />
    <ItemGroup>
      <Content Include="webroot/**" CopyToPublishDirectory="Always" />
    </ItemGroup>
  </Target>

Я также сохранил следующее, чтобы клиент собирался при отладке:

      <Target Name="Build Client" AfterTargets="Build">
  <Exec Command="npm install" />
  <Exec Command="npm run build" />
  <ItemGroup> 
    <Content Include="webroot\**"> 
      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
    </Content> 
  </ItemGroup>
</Target>

Проблема в том, что когда я публикую приложение, я вижу, что клиент создается дважды.

Как это решить?

0 ответов

Другие вопросы по тегам