如何在Visual Studio 2010中的生成中创建一个空文件夹?

Rob*_*iam 8 visual-studio-2010

我有一个VS2010项目,它需要在bin\debug目录中创建一个dataIn和一个dataOut目录,以允许运行一些测试.

创建dataIn目录很简单 - 只需将包含内容的文件夹添加到项目中,并将其包含的每个文件的"复制到输出目录"属性设置为"始终复制"(或编辑项目文件以使用通配符捕获所有文件,如SO上的其他答案所示 - 该目录将由VS自动创建,以便可以将文件复制到其中.

我的问题:如何确保在需要时自动创建dataOut目录?

没有文件可以进入,因此ItemGroup中没有此目录.如果我手动将目录条目添加到项目文件中,则会收到错误消息:

"<path>\dataOut" is actually a directory.  The "Copy" task does not support copying directories.
Run Code Online (Sandbox Code Playgroud)

(编辑:从目录名称中删除下划线,以便斜体可以工作!)

Fly*_*179 12

在预构建步骤中尝试此操作:

if not exist "$(TargetDir)dataOut" mkdir "$(TargetDir)dataOut"
Run Code Online (Sandbox Code Playgroud)

如果你在某个地方有空格$(TargetDir),那么引号很重要,但是我会使用它们而不管它们的稳健性.


Rob*_*iam 5

到目前为止,我管理的一种方法是将虚拟文本文件添加到文件夹并将其“复制到输出目录”属性设置为“始终复制”的相当明显的步骤。我还添加了一个构建后步骤以在之后删除虚拟文件,留下现在为空的目录(尽管对于这个特定项目,这实际上只是由于我的挑剔 - 如果不是,则没有任何影响那里)。

我仍然想知道是否有更好的选择,但......