ディレクトリ内の次の規則に基づいて、一連のアセンブリを検索しようとしています。
{SubDirName}\{SubDirName}.dll
[.RecursiveDir 部分で別の ItemGroup をバッチ処理して] MSBuild ItemGroup を作成することから始めました。
<AllAssemblies Include="$(SourceDirectory)\**\Test.*.dll" />
<Dirs Include="@(AllAssemblies->'%(RecursiveDir)')"/>
各項目には末尾にスラッシュがあります。つまり、次のようになります。
<Message Text="@(Dirs)"/>
言います:
SubDir1\;SubDir2\;SubDir3\
ここで、このリストから一連のファイル名を生成したいと考えています。
問題はそれです:
<AssembliesByConvention Include="@(Dirs -> '%(Identity)\%(Identity).dll')" />
生成:
SubDir1\\SubDir1\.dll;SubDir2\\SubDir2\.dll;SubDir3\\SubDir3\.dll
のピリオドの前にスラッシュを付けたくありません.dll
。
これを達成する最もクリーンな方法は何ですか?
HasTrailingSlash 式演算子があることは知っていますが、OOTB Tasks? に RemoveTrailingSlash タスクの兆候はありません。必要な MSBuild のバージョンについて、私はうるさいわけではありません。