Некоторые файлы находятся в других каталогах, и я хотел бы автоматически скопировать их в папку проекта перед сборкой и публикацией.
После некоторых исследований и экспериментов я создал следующий файл .csproj.
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeFrameworkVersion>2.1.4</RuntimeFrameworkVersion>
<TieredCompilation>true</TieredCompilation>
<PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>
<ItemGroup>
<APIDefinition Include="D:\SomePlace\*.API.*.yaml" />
</ItemGroup>
<Target Name="CopyFiles" BeforeTargets="Compile;Build;Publish">
<Copy SourceFiles="@(APIDefinition)" DestinationFolder="wwwroot" />
<Copy SourceFiles="D:\SomePlaceElse\BaseAPISettings.json" DestinationFolder="$(MSBuildProjectDirectory)" />
</Target>
<ItemGroup>
<Compile Remove="wwwroot\**\*;node_modules;bower_components" />
<None Update="**.user;**.vspscc">
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.4" />
</ItemGroup>
</Project>
Здесь я определил цель CopyFiles, которая должна быть запущена до тех целей, которые я там поместил.Эта цель использует задачу «Копировать» для копирования файлов определения API формата YAML и базовых настроек API в каталог проекта.
Это хорошо работает при сборке, публикации и т. Д. Кроме того, если я удаляю локальный файл в IDE, он мгновеннокопирует его из источника.
Иногда я делаю изменения в этих файлах между сеансами отладки.Затем, когда я начинаю отладку из Visual Studio, поскольку файлы проекта не изменяются, очевидно, уже запущенный проект запускается.
Так как проект не построен, мои задачи копирования не запускаются, и я получаю устаревшие файлы во время отладки.
Есть ли что-то, что я могу сделать, чтобы мои задачи копирования запускались, когдаЯ делаю «Начать отладку F5» в IDE, независимо от состояния сборки проекта?
PS: я использую Visual Studio 2017 15.8.5 и ориентируюсь на среду выполнения .NET Core 2.1.4, если онаразница.