将非 DLL 文件复制到其他项目的所有输出目录

Copy non-DLL file to all output directories of other projects

我有一个由三个项目组成的解决方案,A 和 B 都是可执行的并且依赖于 C。C 有一些文件资源,两者中的任何一个都需要执行。该文件需要复制到两个项目的输出文件夹中。为什么?因为两者都使用一个库,该库期望文件位于文件夹 AppDomain.CurrentDomain.BaseDirectory 中,您可以从中启动可执行文件。所以复制到C的output文件夹没有效果。在构建步骤后通过 xcopy 复制它似乎有点太脆弱,因为我不知道输出文件夹的确切位置 (debug/x64/bin/...)

例如,如果您 reference/depend 在一个 DLL 上,该 DLL 将被复制到正在启动的项目的输出目录中。但不幸的是我的文件不是 DLL,因此不能添加为项目 "reference" 所以这不起作用。

在 VisualStudio 中,您可以在文件的“属性”窗格中将 "Build Action" 设置为 "Content",将 "Copy to Output Directory" 设置为 "Copy always" 或 "Copy if newer"。现在,如果您的项目 A 或 B 将项目 C 设置为项目引用,则该文件也将放入项目 A 和 B 的构建文件夹中。