gpt4 book ai didi

visual-studio-2010 - 将robocopy与Visual Studio 2010生成后和生成前事件一起使用

转载 作者:行者123 更新时间:2023-12-03 08:54:08 27 4
gpt4 key购买 nike

Robocopy成功时输出1,与大多数程序成功时退出0不同。 Visual Studio(和MSBUILD)将退出代码1解释为错误。

Robocopy如何在Visual Studio的构建后和构建前事件中使用,以使构建环境正确识别其失败和成功?

注意:这或多或少是this post的转发。

最佳答案

MSBuild extensionpack包含您可以在构建过程中使用的Robocopy任务。
这可以代替VS生成前/生成后事件为您提供解决方案吗?

如果是这样,可以通过覆盖BeforeBuild,AfterBuild目标并调用Robocopy任务来extend the Visual Studio Build Process(如果它们更适合您的需求,您也可以覆盖其他目标,请参见链接的MSDN页面中的列表)
因此,实际上,您应该下载并安装MSBuild extensionpack,而不是打开项目的csproj / vbproj文件并编辑以下方式:

添加以下条目以导入MSBuild extensionpack的Robocopy任务

<PropertyGroup>
<TPath>$(MSBuildExtensionsPath32)\ExtensionPack\4.0\MSBuild.ExtensionPack.tasks</TPath>
</PropertyGroup>
<Import Project="$(TPath)"/>

覆盖BeforeBuild,AfterBuild并执行Robocopy任务
<Target Name="BeforeBuild">
<Message Text="Beforebuild" />
<MSBuild.ExtensionPack.FileSystem.RoboCopy Source="C:\temp\robo_src1" Destination="C:\temp\robo_dest1" Files="*.*" Options="/MIR">
<Output TaskParameter="ExitCode" PropertyName="Exit" />
<Output TaskParameter="ReturnCode" PropertyName="Return" />
</MSBuild.ExtensionPack.FileSystem.RoboCopy>
<Message Text="ExitCode = $(Exit)"/>
<Message Text="ReturnCode = $(Return)"/>
</Target>
<Target Name="AfterBuild">
<MSBuild.ExtensionPack.FileSystem.RoboCopy Source="C:\temp\robo_src2" Destination="C:\temp\robo_dest2" Files="*.*" Options="/MIR">
<Output TaskParameter="ExitCode" PropertyName="Exit" />
<Output TaskParameter="ReturnCode" PropertyName="Return" />
</MSBuild.ExtensionPack.FileSystem.RoboCopy>
<Message Text="ExitCode = $(Exit)"/>
<Message Text="ReturnCode = $(Return)"/>
</Target>

关于visual-studio-2010 - 将robocopy与Visual Studio 2010生成后和生成前事件一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5470828/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com