我有以下項目結構SolutionDir -src -Feature |---Feature.A |-----code |-------ViewA |---------FileA.cshtml |---Feature.B |-----code |-------ViewB |---------FileB.cshtml我希望將其復制到以下結構中的 dest 目錄-OutputDir|--code|----ViewA|------ViewA.cshtml|----ViewB|------ViewB.cshtml我在 .csproj 中使用以下腳本<Target Name="AfterBuild"><ItemGroup> <FeatureViewFiles Include="$(SolutionDir)src\Feature\Feature.*\code\**\*.cshtml" /></ItemGroup><Copy SkipUnchangedFiles="true" SourceFiles="@(FeatureViewFiles)" DestinationFolder="OutputDir\code\%(RecursiveDir)%(Filename)%(Extension)" /></Target>現在,因為在我的Include通配符中Feature.*,RecursiveDir指令輸出為Feature.A\code\ViewA\,而我真正想要的是它從文件夾下開始復制文件夾結構code。知道我如何實現這一目標嗎?
2 回答

Cats萌萌
TA貢獻1805條經驗 獲得超9個贊
抱歉,恐怕答案是否定的。
據我所知,這是復制任務的預期行為。如果您在Feature.*中使用通配符,它不會從ViewX中選擇結構。只有當您指定Feature.A或Feature.B時,復制任務才能按您的預期進行。但我認為這不是您想要的,所以我認為復制任務無法滿足您對此問題的需求。
除了復制任務之外,還有一個可執行任務,您可以在其中指定命令。它的工作方式類似于使用命令行 cmd.exe。因此,如果有任何命令或批處理文件可以完成這項工作,您可以使用Exec 任務來調用它們。但對于復制任務,目前不支持指定父文件夾級別的行為:(
另外:我嘗試了 copy、xcopy 但沒有成功。也許您可以嘗試robocopy或任何其他工具。如果它們可以在命令行中工作,那么您可以使用 exec 命令將它們納入您的構建目標。
- 2 回答
- 0 關注
- 178 瀏覽
添加回答
舉報
0/150
提交
取消