MSBuild:将路径转换为命名空间
我有这样的项目列表:
<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 转换来做到这一点?我尝试过,但只能获取文件名;扩展名和根路径,我可以更改分隔符。但不是路径分隔符。
如果没有,任何其他避免使用自定义任务的解决方案都是值得赞赏的。
I have list of items like this:
<ItemGroup>
<ToCompile Include="clojure\core.clj;clojure\set.clj;clojure\zip.clj;clojure\test\junit.clj;"/>
</ItemGroup>
And I want to transform that to a list of items like this:
clojure.core clojure.set clojure.zip clojure.test.junit
Is there a way to do this with MSBuild transforms? I tried but I can only get at the file name; the extension and the root path, and I can change the separator. But not the path separators.
If not, any other solution that avoids using custom tasks is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这有点俗气,但它适用于 MSBuild 4.0+。
This is a bit cheesy, but it works in MSBuild 4.0+.
我们可以用更少的奶酪轻松做到这一点:
<消息
Text="$([System.String]::Copy('%(ToCompile.Identity)').Replace('.clj','').Replace('\','.'))"/>;
We can do it easily with fewer cheese:
<Message
Text="$([System.String]::Copy('%(ToCompile.Identity)').Replace('.clj','').Replace('\','.'))"/>