Копировать файлы клиента при публикации
В веб-приложении Net Core 7 мне нужно создать несколько клиентских скриптов (JS и LESS).
Скрипты находятся в «./approot», и когда я запускаю командуnpm run build
готово:
- Создайте файлы в «./approot» и сохраните вывод в «./approot/dist».
- Удалите папку "./webroot" со всем ее содержимым.
- Создайте новый «./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>
Проблема в том, что когда я публикую приложение, я вижу, что клиент создается дважды.
Как это решить?