首页 > 解决方案 > 微软构建任务无法复制到目标文件夹

问题描述

我是第一次使用 MSbuild Task 并没有发现同样的问题。我更改了 .csproj 文件,现在的问题是 SourceFiles 无法复制到 DestinationFolder(".\IntentionSystem\Logic\Commands\xxx"),而是复制到 .csproj 文件的路径(".\xxx")。那么如何复制到 DestinationFolder?</p>


```<ItemGroup>
   <Compile Include="..\..\Unity\Assets\Scripts\CS_Share\Commands\*.cs" />
 </ItemGroup>

 <Target Name="CopyFiles">
   <Copy SourceFiles="@(Compile)" DestinationFolder=".\IntentionSystem\Logic\Commands\%(RecursiveDir)"/>
 </Target>```


标签: c#msbuild

解决方案


您在您的ItemGroup*.cs 中指定,这意味着获取该目录中的所有文件。意思是不要在子目录中获取文件。

但是在复制目标的 DestinationFolder 中,您指定使用不存在的元数据将其复制到子目录:%(RecursiveDir).

现在,如果您指定:Include="..\..\Unity\Assets\Scripts\CS_Share\Commands\**\*.cs"它可能是有道理的。

文档在这里:https ://docs.microsoft.com/en-us/visualstudio/msbuild/how-to-select-the-files-to-build?view=vs-2019


推荐阅读