将目录复制到输出目录 - 控制台应用程序 .NET
Posted
技术标签:
【中文标题】将目录复制到输出目录 - 控制台应用程序 .NET【英文标题】:Copy Directory to Output Directory - Console Application .NET 【发布时间】:2010-09-21 10:49:49 【问题描述】:有没有办法在 C#.NET 的控制台应用程序中将整个目录复制到输出目录?
我知道对于文件,您可以右键单击它们、属性并标记复制到输出目录。但我不会为 20.000 个文件这样做...
谢谢,Lieven Cardoen aka Johlero
【问题讨论】:
为什么需要 20k 个文件?这些是什么?我必须知道,伙计! 如果它们仅供阅读,请考虑硬链接。 【参考方案1】:您可以按 ctrl+A 突出显示所有这些,然后按 ctrl+C 复制它们,然后转到新目录并按 ctrl+V 将它们全部粘贴到新位置...
或者您可以打开命令窗口并使用复制...但第一种方法可能更简单。
【讨论】:
【参考方案2】:您确定要输出所有 20000 个文件吗?
除了手动复制粘贴操作,我看到两个选项:一个是您可以有一个构建后任务来复制所有文件,另一个是压缩 20000 个文件,将 zip 文件作为内容项添加到您的项目中,使用 "始终复制“设置,然后控制台应用程序解压缩它们,或者构建后步骤正在调用解压缩实用程序来执行此操作。
【讨论】:
【参考方案3】:在开发过程中,使用应用程序配置来指向这些文件当前所在的位置,而不是复制它们。 (在每个构建中复制那么多对象是一场噩梦。即使只复制新的/更新的文件)
在准备发布构建时,您可能需要考虑使用构建脚本和 MSBuild 或 NAnt 来为您执行此类操作。
如果您真的确信您仍然希望在每个构建中执行复制 - 使用 Post/pre-build 脚本(在您的项目构建配置中,指向执行 xcopy..一些智能批处理脚本有时会很有帮助)。
【讨论】:
以上是关于将目录复制到输出目录 - 控制台应用程序 .NET的主要内容,如果未能解决你的问题,请参考以下文章
将所有依赖项从 .Net 标准库复制到 .Net Framework Console 应用程序
复制本地如何工作? log4net.dll 没有被复制到 MyProject 输出目录