C # - ссылка на MSBuild - копировать в CopyToOutputDirectory все элементы <itemGroup> - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь скопировать все файлы в проекте в выходной каталог.

Сейчас я выгружаю свой процесс, и в моем "TestProject.csproj" у меня есть эти опции для элемента, который я 'я хотел бы скопировать:

  <ItemGroup>
    <Content Include="TEST\file1.xml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="TEST\file2.xml" >
     <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
  </ItemGroup>

Я хочу иметь возможность копировать все элементы в этой папке, включая другие, которые будут добавлены позже (... file3.xml, file4.xml),

Я не хочу, чтобы меня принудительно добавляли в каждый файл поведение «PreserveNewest», но я бы хотел использовать своего рода «опцию посткомпиляции», чтобы она работала.

Любой совет?

1 Ответ

0 голосов
/ 20 сентября 2019

Вы можете указать метаданные элемента по умолчанию с помощью определения элемента :

<ItemDefinitionGroup>
  <Content>
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemDefinitionGroup>

Это будет применяться по умолчанию ко всем Content элементам.Вы должны иметь возможность ограничить это только файлами XML, используя условие:

<ItemDefinitionGroup>
  <Content>
    <CopyToOutputDirectory Condition="'%(Content.Extension)'=='.xml'">PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemDefinitionGroup>
...