VS引用项目构建事件:如何将文件复制到根项目输出目录?
让项目B自动将文件复制到根项目A的输出目录
问题根源
你用的$(TargetDir)指向的是项目B自身的输出目录(比如ProjectB/bin/Debug),构建项目A时,B的构建事件只会把文件复制到B自己的bin文件夹;而B的编译产物会被复制到A的bin目录,但那些txt文件不属于B的默认输出内容,所以不会同步过去。
直接修改构建事件的方法
把项目B的后期构建事件里的$(TargetDir)替换成$(SolutionDir)$(Configuration)\,这个宏会指向解决方案根目录下对应配置的输出目录(也就是项目A的bin/debug,如果A用的是默认输出路径的话)。
修改后的命令:
xcopy /Y "$(ProjectDir)Files\*.txt" "$(SolutionDir)$(Configuration)\"
如果项目A的输出目录是自定义路径,就把目标路径换成A实际的输出地址,比如$(SolutionDir)ProjectA\bin\$(Configuration)\,前者更适配默认配置,通用性更强。
更省心的配置方法(无需写命令)
直接给项目B里的txt文件设置属性,不用依赖构建事件:
- 选中Project B的Files文件夹下所有
.txt文件 - 在右侧属性窗口设置:
- 复制到输出目录:选择「如果较新则复制」(比「始终复制」更高效)
- 输出目录:直接填写
$(SolutionDir)$(Configuration)\(替换默认的Files\)
这样构建时文件会直接被拷贝到A的输出目录,完全由项目B独立管控。
为什么你的临时方案不推荐
需要在项目A里额外做xcopy和删除操作,把资源分发的逻辑拆分到了两个项目中,而上面的方法都能让项目B完成所有操作,符合模块化的思路。
内容的提问来源于stack exchange,提问作者Helic
相关产品推荐
相关产品推荐

