msbuild include / copy из подкаталога в корневой каталог - возможно? - PullRequest
3 голосов
/ 17 августа 2011

Можно ли включить файл из подкаталога, но поместить его в корневой каталог bulid вместо его исходного подкаталога?

Пример: у нас есть несколько файлов robots.txt для разных конфигураций выпуска.Файлы находятся в решении как \ IncludeTest \ Development \ robots.txt и \ IncludeTest \ Production \ robots.txt

. Я могу динамически захватить их, используя что-то вроде:

  <ItemGroup Condition=" '$(Configuration)' == 'Development' ">
    <Content Include="IncludeTest\Development\robots.txt">
      <SubType>Designer</SubType>
    </Content>
  </ItemGroup>

, нокогда я делаю это, я поддерживаю каталог \ IncludeTest \ Development \ (или \ IncludeTest \ Production).Любой способ просто включить его в корневой каталог, где должен находиться файл robots.txt?

Ответы [ 2 ]

1 голос
/ 17 августа 2011

Выше все еще не работало для меня полностью, но я смог найти обходной путь, основанный на том, как вы настроили группу элементов:

Включение файла в решение в качестве ссылки помещает его в корневой каталог.И с вашей подсказкой $ (Configuration) я смог сделать это и просто включить его динамически в виде ссылки, а не копировать в корень.

<Content Include="..\Robots_Source\$(Configuration)\robots.txt">
  <Link>robots.txt</Link>
</Content>
0 голосов
/ 17 августа 2011

Не уверен, что я правильно понял ваш вопрос, дайте мне знать, работает ли эта работа, как вы ожидали:

 <ItemGroup>
    <Content Include = "IncludeTest\$(Configuration)\robots.txt">
      <SubType>Designer</SubType>
    </Content>
  </ItemGroup>

Копировать в корень:

<Copy SourceFiles="@(Content)" 
   DestinationFiles="@(Content ->'..\%(RecursiveDir)%(Filename)%(Extension)')" />

РЕДАКТИРОВАТЬ: это может быть проблемой, когда файлы находятся во вложенных каталогах, поэтому попробуйте:

 <Copy SourceFiles="@(Content)" 
   DestinationFiles="@(Content ->'$(MSBuildProjectDirectory)..\%(RecursiveDir)%(Filename)%(Extension)')" />
...