MSBuild: преобразование путей в пространства имен - PullRequest
2 голосов
/ 24 октября 2010

У меня есть список таких вещей:

<ItemGroup>
    <ToCompile Include="clojure\core.clj;clojure\set.clj;clojure\zip.clj;clojure\test\junit.clj;"/>
</ItemGroup>

И я хочу преобразовать это в список элементов вроде этого:

clojure.core clojure.set clojure.zip clojure.test.junit

Есть ли способ сделать это с помощью преобразований MSBuild? Я пытался, но я могу получить только по имени файла; расширение и корневой путь, и я могу изменить разделитель. Но не разделители пути.

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

Ответы [ 2 ]

3 голосов
/ 08 февраля 2011

Мы можем сделать это легко с меньшим количеством сыра:

1 голос
/ 24 октября 2010

Это немного глупо, но работает в MSBuild 4.0 +.

<Target Name="Namespaces">
  <PropertyGroup>
    <Cheesy>@(ToCompile -> '%(relativedir)%(filename)', ' ')</Cheesy>
  </PropertyGroup>
  <Message Text="$(Cheesy.Replace(`\`, `.`))" />
</Target>
...