我想使用AfterBuild
目标将整个项目结构复制到一个单独的文件夹中。这是项目结构
TANKProject
|
|__TANK.CLI
|__TANK.Core
|__TANK.Web
我想将包括bin
文件夹和.sln
文件夹在内的整个项目结构复制到一个位置B:\animesh\repos
。
为此,我将以下代码段放入AfterBuild
每个.csproj
文件的目标中:
<ItemGroup>
<_CustomFiles Include="..\TANK.ProjectName\*.*" />
</ItemGroup>
<Copy
SourceFiles="@(_CustomFiles)"
DestinationFiles="B:\repos\TANK"
SkipUnchangedFiles="true" />
构建项目时出现以下错误:
"DestinationFiles" refers to 3 item(s), and "SourceFiles" refers to 1 item(s). They must have the same number of items.
我在这里想念什么?
解决方案
根据 AdrianMonk 的回答,我改变了我的AfterBuild
配置,如下所示:
<Target Name="AfterBuild">
<ItemGroup>
<_CustomFiles Include="..\**" />
</ItemGroup>
<Copy
SourceFiles="@(_CustomFiles)"
DestinationFiles="@(_CustomFiles->'B:\repos\TANK\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true" />
</Target>
我只将这个AfterBuild
目标放在其中一个项目中,因为这样就足够了。