如何在Visual Studio项目的bin/Release文件夹中创建一个文件夹?

6
如何在 Visual Studio 项目的 bin/Release 中创建文件夹?
我的项目调用外部 exe 文件,我想把它放在 bin/Release/External 中。但是每次重新构建项目时,所有文件都会被删除,所以我不能手动复制文件到那里。应该怎么做呢?
8个回答

11

当您清理解决方案时,项目bin文件夹内的文件夹通常会被删除(除非您更改了项目属性,但这不能解决您的问题)。

最简单的方法是将所需的文件夹添加到您的项目中,并在文件夹上添加exe文件。将exe文件的属性更改为“内容”和“始终复制”。

通过这样做,每次重新构建解决方案时,输出都会有文件夹和exe文件。

如果exe文件更改,则可以将其添加为链接;确保每次都使用最新版本。


1
如果我有一个空文件夹怎么办?我有一个名为Temp的空文件夹,在其中创建和删除临时文件。我无法为文件夹设置“始终复制”。 - user3111311
在输出文件夹中,VS仅复制将要使用的内容:被代码引用的Dll和需要复制的内容(如文档)。在这样做时,默认情况下,它会尝试保持项目的结构。这意味着如果一个文件夹是空的,它不会被复制,因为VS检测到它是无用的。据我所知,这就是它的工作原理。一个丑陋但在你的情况下有用的解决方案可能是创建你想要的文件夹并在其中放置一个虚拟文件,比如一个空的“Dummy.txt”文件。 - Nahuel Ianni
另一种方法是从您的代码中创建目录,然后自动复制文件。 - Nahuel Ianni

6

还有一种方法...

使用后生成事件,您可以编写DOS命令。

例如,在您的情况下,您可以编写:

mkdir  $(TargetDir)\External
xcopy  SOURCE_DIR_EXE   $(TargetDir)\External\EXE_NAME

2
在您的项目中创建一个文件夹,将该文件夹中的exe文件添加为引用,然后将exe文件的“复制到输出目录”属性设置为“始终复制”或“仅在更新时复制”。exe文件所在的文件夹结构将被复制到输出目录中。

2

在项目中创建一个文件夹,将exe文件放入其中,并将“Copy To Output Directory”属性设置为“Copy if newer”。


0
尝试将此集成到构建过程中:
<ItemGroup>
    <_CopyItems Include="$(your_path)\*.*" />
</ItemGroup>
<Copy
    SourceFiles="@(_CopyItems)"
    DestinationFolder="$(BuildOutput)\External"
/>

0
在项目选项 -> 构建事件中添加 mkdir 命令的后期构建事件命令行。

0
您可以使用“后构建事件”来实现此目的。 项目属性->生成事件->后生成事件命令行 “从 a 复制到 b”。
或者第二个选项,您可以在项目中创建一个名为“External”的文件夹,并将您的 exe 文件放在其中。将属性“复制到输出目录”设置为“始终复制”。

0
在您的解决方案中创建一个以您想要的名称命名的文件夹,将您的文件添加到其中(添加现有项目),右键单击文件并将BuildAction设置为None,将CopyToOutputDIrectory设置为Copy AlwaysCopy If Newer,重新构建您的项目,就这样!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接