我有以下MSBuild目标文件(如下所示)。
如何在Default之后添加一个额外的步骤,将其中一个项目的所有\bin\Debug
或\bin\Release
复制到名为binaries
的文件夹中,该文件夹与{ {1}}文件已运行?
如果我能更好地了解它是否更好地使用Debug或Release。
更新:我已经更新了我到目前为止所获得的代码。仍然很高兴能够运行.bat文件,在两种操作模式下关闭这个msbuild:Release和Debug然后在Binaries文件夹中有两个不同的文件夹
.targets
答案 0 :(得分:1)
Configuration
属性默认值AfterTargets
使用DependsOnTargets
,而是默认目标定义最后一个,所以目标将以相同的顺序执行,但只是以相反的顺序链接final.targets
或您希望如何命名final.targets /p:Configuration=RELEASE
以进行发布配置构建<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
DefaultTargets="CopyBinOutput">
<PropertyGroup>
<!-- define defaults -->
<Configuration Condition="$(Configuration)==''">DEBUG</Configuration>
</PropertyGroup>
<Choose>
<When Condition=" '$(Configuration)'=='DEBUG' ">
<ItemGroup>
<BinFiles Include=".\src\Sample.Core\Sample.Core.Infrastructure\bin\Debug\**\*.*" />
</ItemGroup>
</When>
<When Condition=" '$(Configuration)'=='RELEASE' ">
<ItemGroup>
<BinFiles Include=".\src\Sample.Core\Sample.Core.Infrastructure\bin\Release\**\*.*"/>
</ItemGroup>
</When>
</Choose>
<Target Name="EntryPointTarget">
<Message Text="EntryPointTarget started" />
<!-- here is build your solution -->
</Target>
<Target Name="CopyBinOutput" DependsOnTargets="EntryPointTarget">
<Message Text="CopyBinOutput started" />
<Copy SkipUnchangedFiles="True" OverWriteReadOnlyFiles="true"
SourceFiles="@(BinFiles)"
DestinationFiles="@(BinFiles->'.\binaries\$(Configuration)\%(RecursiveDir)%(Filename)%(Extension)')" />
<Message Text="CopyBinOutput finished, destination is .\binaries\$(Configuration)" />
</Target>
</Project>