亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MSBuild:如何遞歸復制到項目的某些父文件夾

MSBuild:如何遞歸復制到項目的某些父文件夾

C#
阿晨1998 2023-09-24 16:23:55
我有以下項目結構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 命令將它們納入您的構建目標。


查看完整回答
反對 回復 2023-09-24
?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

我相信這是不可能的。

嘗試搜索 Exec 命令,您可以在其中指定多個命令,也可以使用批處理文件,這可能對您的情況有幫助。


查看完整回答
反對 回復 2023-09-24
  • 2 回答
  • 0 關注
  • 178 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號