Скопировать в публикацию каталога вывод события PreBuild - PullRequest
0 голосов
/ 14 февраля 2019

Внутри моего csproj у меня есть событие перед сборкой, где я запускаю сборку проекта Vue js.Он выводит в папку "dist" и загружается файлом cshtml.

В файле csproj у меня есть ссылка на папку dist, и я говорю ей скопировать в каталог публикации:

<ItemGroup>
  <Content Include="dist\**" CopyToPublishDirectory="Always" />
</ItemGroup>

При публикации MsBuild, похоже, пытается скопировать файлы впапка dist, существующая до начала события перед сборкой.Есть ли способ заставить MsBuild скопировать содержимое папки после события перед сборкой?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Для поддержки всех возможных механизмов публикации, поддерживаемых инструментами (VS и т. Д.), Я предлагаю настроить его аналогично тому, как работает угловой шаблон в коробке:

<Target Name="PublishDistFiles" AfterTargets="ComputeFilesToPublish">
  <ItemGroup>
    <DistFiles Include="dist\**" />
    <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
      <RelativePath>%(DistFiles.Identity)</RelativePath>
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </ResolvedFileToPublish>
  </ItemGroup>
</Target>
0 голосов
/ 16 февраля 2019

Вы можете добавить шаг, чтобы сделать это вручную, используя Копировать задачу

<Target Name="MyCopyStep" AfterTargets="AfterPublish">
  <ItemGroup>
     <MyDistFiles Include="dist\**" />
  </ItemGroup>
  <Copy SourceFiles="@(MyDistFiles)" DestinationFiles="@(MyDistFiles->'$(PublishDir)\dist\%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...