我正在尝试将$(TargetDir)中的几个文件复制到另一个文件夹(例如C:\ BinCache),但无论出于何种原因,我都无法让MSBuild停止抱怨。
<Target Name="AfterBuild">
<Copy SourceFiles="$(TargetDir)\*.*"
DestinationFolder="C:\BinCache" />
</Target>
我在这里做错了什么?
编辑:解决方案是使用CreateItem任务。据推测,Visual Studio 2008消除了这种限制。谢谢斯科特!
<Target Name="AfterBuild">
<CreateItem Include="$(TargetDir)\*.*">
<Output TaskParameter="Include" ItemName="SourceFiles" />
</CreateItem>
<Copy SourceFiles="@(SourceFiles)" DestinationFolder="C:\BinCache" />
</Target>
答案 0 :(得分:8)
SourceFiles需要是一个项目列表
你需要像
这样的东西<Target Name="AfterBuild">
<ItemGroup>
<SourceFiles Include="$(TargetDir)\*.*" />
</ItemGroup>
<Copy SourceFiles="@(SourceFiles)" DestinationFolder="C:\BinCache" />
</Target>
刚刚注意到你是在2005年,在这种情况下你需要使用CreateItem任务
答案 1 :(得分:0)
只需使用常规的构建前或构建后事件。 VS支持开箱即用。
xcopy "@(TargetDir)*.dll" "\yourdir" /i /f /s /v /y