Domanda

Ho un elenco di elementi come questo:

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

E voglio trasformarlo in un elenco di elementi come questo:

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

C'è un modo per farlo con le trasformazioni MSBuild? Ho provato ma posso solo ottenere il nome del file; L'estensione e il percorso della radice, e posso cambiare il separatore. Ma non i separatori del percorso.

In caso contrario, è apprezzata qualsiasi altra soluzione che evita l'uso di attività personalizzate.

È stato utile?

Soluzione

Questo è un po 'di formaggio, ma funziona in MSBuild 4.0+.

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

Altri suggerimenti

Possiamo farlo facilmente con meno formaggio:

u003CMessage nText="$([System.String]::Copy('%(ToCompile.Identity)').Replace('.clj','').Replace('','.'))"/>

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top