我希望在每次构建时都将一个特定的目录复制到输出文件夹(“bin”)。我认为可以通过构建后脚本来处理。但我不确定如何复制目录本身。我知道如何处理特定的文件。
例如,这适用于文件:
在
项目〉属性〉生成事件〉生成后
COPY "$(SolutionDir)Resources\Release Notes.pdf" "$(TargetDir)"
但是,假设我有一个目录Template
,现在我需要Template
下的所有内容在成功构建后进入bin
文件夹维护文件夹结构。
我试过这个:
COPY "$(SolutionDir)Resources\Template\" "$(TargetDir)"
只有Template
目录中的文件会以这种方式复制,而不是Template
文件夹中的子目录和文件。我希望Template
文件夹本身位于我的输出bin
文件夹中。换句话说,bin
应该如下所示:
bin > Template > abc.xxx
xxx.yyy
Subdirectory1 > asd.qwe
zxc.qwe
Subdirectory2 > ...
这可能是一个重复,但我找不到相关的线程。谢谢。
7条答案
按热度按时间hpcdzsge1#
我刚刚将此文件添加到我的 *.csproj文件中(右键单击“编辑项目文件”)
我认为对于这个目录需要在同一层次结构的水平作为 *.csproj文件或以下。
k2arahey2#
/S
是递归复制所有内容的键。由于我希望每次都在没有提示的情况下覆盖文件,所以我还添加了一个
/Y
开关。zengzsys3#
请尝试XCOPY而不是COPY;例如:
有关XCOPY的更多信息,请单击此处...
http://www.computerhope.com/xcopyhlp.htm
sq1bmfud4#
这是一个在Visual Studio 2019上运行的附加解决方案,截止到本文发表之日。这将递归复制文件夹结构和其中的所有文件。在多项目解决方案中的C++ .vcxproj上测试。
首先,编辑您的[ .proj / .vcxproj / .csproj ]档案。开启后,寻找您的项目范围标记。如果您已经有ItemGroup,请将下面的程式码直接贴到现有的ItemGroup之后。否则,请将它加入PropertyGroup标记之前。然后修改您要复制到输出路径之文件夹结构的Include & Link参数。
注:如果您有多个顶级文件夹,如JS、IMG、BIN等,则为每个文件夹创建一个新条目。
0sgqnhkj5#
CodingYourLife的解决方案几乎对我有效,但我发现PreserveNewest没有得到尊重。我在Visual Studio论坛上找到了一个可以正常工作的解决方案。我的.CSPROJ现在看起来像这样:
注意:此解决方案需要Visual Studio 16.10或更高版本。
xytpbqjk6#
对于这个问题,我有一个可行的解决方案:
hmmo2u0o7#
这是唯一对我有效的解决方案(VS2022、.Net Framework):