在 MSBuild 中构建所有项目后执行 XCopy 操作
Execute a XCopy operation after all the projects build in MSBuild
我有一个 .proj 文件,该文件被配置为执行一个解决方案文件,该文件依次构建解决方案中的所有项目。
我想添加一个 XCopy 操作,它应该仅在所有项目构建完成后将所有项目的 .dll 文件复制到另一个位置。
我在下面尝试过,但它没有复制 dll。
我是编写MSBuild标签的新手,所以可能我选择这种方法以这种方式编写任务可能是错误的。
有知道的请提供解决方法
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == 'Release|Debug'"/>
<Platform Condition="'$(Platform)' == ''">x64</Platform>
</PropertyGroup>
<ItemDefinitionGroup>
<SolutionToBuild>
<Properties>Configuration=$(Configuration);Platform=$(Platform)</Properties>
<Targets>Clean;Build</Targets>
</SolutionToBuild>
</ItemDefinitionGroup>
<ItemGroup>
<SolutionToBuild Include="..\Seg\Algorithms.sln" />
</ItemGroup>
<Target Name="Build" >
<MSBuild Projects="@(SolutionToBuild)" Targets="%(SolutionToBuild.Targets)" Properties="%(SolutionToBuild.Properties)" BuildInParallel="false" ContinueOnError="false" />
</Target>
<Target Name="Clean">
<MSBuild Projects="@(SolutionToBuild)" Targets="Clean" Properties="%(SolutionToBuild.Properties)" BuildInParallel="false" ContinueOnError="false" />
</Target>
<PropertyGroup>
<CopyDestination>..\Extern\Algo\bin$(Configuration)\</CopyDestination>
<CopySource>..\Seg\Algorithms$(Configuration)\DoBin\</CopySource>
</PropertyGroup>
<ItemGroup>
<FilesToCopy Include="$(CopySource)*.dll"/>
</ItemGroup>
<ItemGroup>
<CustomBuildStep Include ="@(FilesToCopy)">
<Message>Copying..</Message>
<Command> XCOPY %(Identity) $(CopyDestination) /f /y </Command>
</CustomBuildStep>
</ItemGroup>
<PropertyGroup>
<CustomBuildAfterTargets>Build</CustomBuildAfterTargets>
</PropertyGroup>
</Project>
将目标视为被调用的方法。它们按顺序 运行,因此您只需要在解决方案构建后放置您的副本:
<Target Name="Build">
<MSBuild Projects="@(SolutionToBuild)" Targets="%(SolutionToBuild.Targets)" Properties="%(SolutionToBuild.Properties)" BuildInParallel="false" ContinueOnError="false" />
<ItemGroup>
<FilesToCopy Include="..\Seg\Algorithms$(Configuration)\DoBin\*.dll" />
</ItemGroup>
<Copy SourceFiles="@(FilesToCopy)" DestinationFolder="..\Extern\Algo\bin$(Configuration)\" SkipUnchangedFiles="true" />
</Target>
我有一个 .proj 文件,该文件被配置为执行一个解决方案文件,该文件依次构建解决方案中的所有项目。 我想添加一个 XCopy 操作,它应该仅在所有项目构建完成后将所有项目的 .dll 文件复制到另一个位置。 我在下面尝试过,但它没有复制 dll。 我是编写MSBuild标签的新手,所以可能我选择这种方法以这种方式编写任务可能是错误的。
有知道的请提供解决方法
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == 'Release|Debug'"/>
<Platform Condition="'$(Platform)' == ''">x64</Platform>
</PropertyGroup>
<ItemDefinitionGroup>
<SolutionToBuild>
<Properties>Configuration=$(Configuration);Platform=$(Platform)</Properties>
<Targets>Clean;Build</Targets>
</SolutionToBuild>
</ItemDefinitionGroup>
<ItemGroup>
<SolutionToBuild Include="..\Seg\Algorithms.sln" />
</ItemGroup>
<Target Name="Build" >
<MSBuild Projects="@(SolutionToBuild)" Targets="%(SolutionToBuild.Targets)" Properties="%(SolutionToBuild.Properties)" BuildInParallel="false" ContinueOnError="false" />
</Target>
<Target Name="Clean">
<MSBuild Projects="@(SolutionToBuild)" Targets="Clean" Properties="%(SolutionToBuild.Properties)" BuildInParallel="false" ContinueOnError="false" />
</Target>
<PropertyGroup>
<CopyDestination>..\Extern\Algo\bin$(Configuration)\</CopyDestination>
<CopySource>..\Seg\Algorithms$(Configuration)\DoBin\</CopySource>
</PropertyGroup>
<ItemGroup>
<FilesToCopy Include="$(CopySource)*.dll"/>
</ItemGroup>
<ItemGroup>
<CustomBuildStep Include ="@(FilesToCopy)">
<Message>Copying..</Message>
<Command> XCOPY %(Identity) $(CopyDestination) /f /y </Command>
</CustomBuildStep>
</ItemGroup>
<PropertyGroup>
<CustomBuildAfterTargets>Build</CustomBuildAfterTargets>
</PropertyGroup>
</Project>
将目标视为被调用的方法。它们按顺序 运行,因此您只需要在解决方案构建后放置您的副本:
<Target Name="Build">
<MSBuild Projects="@(SolutionToBuild)" Targets="%(SolutionToBuild.Targets)" Properties="%(SolutionToBuild.Properties)" BuildInParallel="false" ContinueOnError="false" />
<ItemGroup>
<FilesToCopy Include="..\Seg\Algorithms$(Configuration)\DoBin\*.dll" />
</ItemGroup>
<Copy SourceFiles="@(FilesToCopy)" DestinationFolder="..\Extern\Algo\bin$(Configuration)\" SkipUnchangedFiles="true" />
</Target>