Как условно включить файл вместо другого файла с MSBuild? - PullRequest
1 голос
/ 29 февраля 2020

У нас есть проект с несколькими различными конфигурациями сборки, которые имеют файлы с одинаковыми именами, но их содержание иногда немного отличается. Большинство этих файлов находятся в папке Resources . Между MSBuild и Xamarin.Ma c программа знает, как извлечь файл из подпапки, соответствующей конфигурации сборки, и переместить его в root папки Resources с кодом ниже :

<ItemGroup Condition="'$(Configuration)' == 'ReleaseA'">
  <BundleResource Include="Resources\A\logo.png">
    <LogicalName>logo.png</LogicalName>
  </BundleResource>
</ItemGroup>
<ItemGroup Condition="'$(Configuration)' == 'ReleaseB'">
  <BundleResource Include="Resources\B\logo.png">
    <LogicalName>logo.png</LogicalName>
  </BundleResource>
</ItemGroup>

Итак, если я собираю ReleaseA, MSBuild знает, что я хочу обработать Resources\A\logo.png как Resources\logo.png.

Теперь я пытаюсь выполнить sh то же самое с одним файлом, не связанным с папкой Resources:

<ItemGroup Condition="'$(Configuration)' == 'ReleaseA'">
  <InterfaceDefinition Include="UI\A\FileSelectWindow.xib">
    <LogicalName>FileSelectWindow.xib<\LogicalName>
  </InterfaceDefinition>
</ItemGroup>
<ItemGroup Condition="'$(Configuration)' == 'ReleaseB'">
  <InterfaceDefinition Include="UI\B\FileSelectWindow.xib">
    <LogicalName>FileSelectWindow.xib<\LogicalName>
  </InterfaceDefinition>
</ItemGroup>

К сожалению, это не работает, и я не уверен, как сообщить MSBuild, что я хочу обработать файл .xib в подпапке A или B, как если бы это было на самом деле UI\FileSelectWindow.xib

Как мне go сделать это в MSBuild? Я пробовал пользовательские команды <Move> и <Copy>, но все они фактически изменяют файлы, которые отслеживаются в git. Я также попытался поместить файлы непосредственно в папку UI и присвоить им имена FileSelectWindow-A и FileSelectWindow-B с одинаковым логическим именем, но безрезультатно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...