MSBuild:转换名称空间的路径

时间:2010-10-23 20:49:46

标签: msbuild msbuild-4.0

我有这样的项目列表:

<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 个答案:

答案 0 :(得分:3)

我们可以用较少的奶酪轻松完成:

&LT;消息 文本= “$([System.String] ::复制( '%(ToCompile.Identity)')替换( '')更换( '\', '') 'CLJ。')”/&GT;

答案 1 :(得分:1)

这有点俗气,但它适用于MSBuild 4.0 +。

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