【问题标题】:Visual Studio Post Build Event - xcopy to different relative directoryVisual Studio Post Build Event - xcopy 到不同的相对目录
【发布时间】:2012-04-19 06:38:45
【问题描述】:

基本上,我想要做的是使用通配符作为目录。

构建后事件在 PageComponents 项目上:

页面组件 小部件模板 小部件模板1 用户控件1 小部件模板2 用户控件2

我想将所有用户控件复制到 Web 项目,但复制到不同的相对位置:

网络 Ctrl演示 用户控件1 用户控件2

我尝试使用通配符 WidgetTemplates 目录:

xcopy "$(ProjectDir)WidgetTemplates\*\*.ascx" "$(SolutionDir)Client.Web\CtrlPresentation" /y /s

但这一切都失败了。于是我尝试了以下方法:

xcopy "$(ProjectDir)WidgetTemplates\*.ascx" "$(SolutionDir)Client.Web\CtrlPresentation" /y /s

但这也会复制每个单独的 WidgetTemplate 文件夹。

有没有办法实现我想要做的事情?

【问题讨论】:

  • Jeremy - 你解决了吗?我正在尝试解决一个非常相似的问题。
  • @itsmatt - 不,很遗憾不是。我采用手动方法,为我想要复制的每个目录添加一个xcopy。我最后只得到了大约十几个,所以这不是一个大问题。
  • 根据文档,您似乎想省略/slink/s :复制目录和子目录,除非它们为空。如果省略 /s,xcopy 将在单个目录中工作。。您是否尝试过在 cmd 中运行 xcopy 命令只是为了确定它正在执行您期望的操作?

标签: visual-studio visual-studio-2010 xcopy post-build-event post-build


【解决方案1】:

尝试使用任务。

<ItemGroup>
    <MySources Include="$(ProjectDir)WidgetTemplates\**\*.ascx" />
</ItemGroup>
<Target Name="CopyOver">
    <Copy SourceFiles="@(MySources)" DestinationFiles="@(MySources->'$(SolutionDir)Client.Web\CtrlPresentation\%(FileName)%(Extension)')">
</Target>

并在构建后使用此目标

<BuildDependsOn>
    $(BuildDependsOn);
    CopyOver
</BuildDependsOn>

【讨论】:

  • 如果这回答了你的问题,你为什么不接受它:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
  • 2012-04-19
  • 2015-09-23
  • 2017-03-13
相关资源
最近更新 更多