<code> <Target Name="BackupAssemblies">
<ItemGroup>
<Assemblies Include="$(MyInputs)" />
</ItemGroup>
<Message Text="Backing: @(Assemblies) -> @(Assemblies -> Replace('.dll', '.bak'))" Importance="High" />
<!--
<Move SourceFiles="@(Assemblies)" DestinationFiles="@(Assemblies -> Replace('%(Extension)', '.bak'))" />
-->
</Target>
</code>
<code> <Target Name="BackupAssemblies">
<ItemGroup>
<Assemblies Include="$(MyInputs)" />
</ItemGroup>
<Message Text="Backing: @(Assemblies) -> @(Assemblies -> Replace('.dll', '.bak'))" Importance="High" />
<!--
<Move SourceFiles="@(Assemblies)" DestinationFiles="@(Assemblies -> Replace('%(Extension)', '.bak'))" />
-->
</Target>
</code>
<Target Name="BackupAssemblies">
<ItemGroup>
<Assemblies Include="$(MyInputs)" />
</ItemGroup>
<Message Text="Backing: @(Assemblies) -> @(Assemblies -> Replace('.dll', '.bak'))" Importance="High" />
<!--
<Move SourceFiles="@(Assemblies)" DestinationFiles="@(Assemblies -> Replace('%(Extension)', '.bak'))" />
-->
</Target>
Using hardcoded string such as '.dll'
worked but not when using the %(Extension)
?
The following doesn’t work.
<code><Message Text="Backing: @(Assemblies) -> @(Assemblies -> Replace('%(Extension)', '.bak'))" Importance="High" />
</code>
<code><Message Text="Backing: @(Assemblies) -> @(Assemblies -> Replace('%(Extension)', '.bak'))" Importance="High" />
</code>
<Message Text="Backing: @(Assemblies) -> @(Assemblies -> Replace('%(Extension)', '.bak'))" Importance="High" />
The test was done with the following command in the console:
msbuild .Blah.csproj /t:BackupAssemblies /p:MyInputs=objReleasenet8.0WASDWASD.dll
Output:
Backing: objReleasenet8.0WASDWASD.dll -> objReleasenet8.0WASDWASD.dll
BTW, how could I pass an array of path through the command line? I want to test batch processing too.