以下是我发现的其他一些类似答案,但没有一个回答我的问题:
使用 afterbuild 任务将整个项目结构复制到另一个目录
我正在尝试做的事情:
我需要在编译时将目录树复制到项目中的几个不同位置。以下是目前的完成方式:
<ItemGroup>
<MediaFiles Include="$(ProjectDir)media\**\*.*" />
<DeployLabel Include="$(ProjectDir)deploy\x">
<Dir>x</Dir>
</DeployLabel>
<DeployLabel Include="$(ProjectDir)deploy\y">
<Dir>y</Dir>
</DeployLabel>
<DeployLabel Include="$(ProjectDir)deploy\z">
<Dir>z</Dir>
</DeployLabel>
</ItemGroup>
<Target Name="GenericDeploy"
Inputs="@(DeployLabel)"
Outputs="%(Identity).Dummy">
<Message Text="Deploying: @(DeployLabel)" />
<Copy SourceFiles="@(MediaFiles)"
DestinationFiles="@(MediaFiles->'$(ProjectDir)deploy%(Dir)media\%(RecursiveDir)%(Filename)%(Extension)')"/>
这假装运行,但根本不复制任何内容。我也尝试过使用%(DeployLabel.Dir)
,但这给了我一个错误。
我不想使用xcopy
,因为该程序似乎不在 Windows 安装的默认清单中(我的 PC 没有它)。另外,我必须承认,我并不完全明白他们的%
所作所为。当我一开始看到 @ 和 % 时,我以为它们是从 Make 复制而来的,但现在我开始怀疑......还有一些关于什么手段的洞察力->
会有所帮助(很难找到关于这些神秘名称的文档)。