如何让msbuild复制文件跨引用输出目录?

时间:2016-02-09 16:03:13

标签: visual-studio visual-c++ msbuild visual-studio-2015

假设我们的项目A包含输出目录bin/,项目B包含输出目录test/bin/。项目A需要将某个配置文件复制到其输出目录。目前,这是通过添加看起来像

的预构建事件来完成的
COPY /Y "$(ProjectDir)..\config.ini" "$(TargetDir)"

项目B具有A作为依赖项。当项目B构建时,A生成的二进制文件被正确复制到B的输出目录,但配置文件不是!

我们如何才能实现A所需的所有文件也被复制到B的输出目录?

1 个答案:

答案 0 :(得分:-1)

你想要的是Link File。我之前使用过这些来确保将connection.config文件复制到多个项目中。

我创建了一个模拟您描述的场景的示例解决方案,如下所示。 ConsoleApplication1引用ClassLibrary1项目。在解决方案中,我创建了一个解决方案文件夹config,并添加了需要复制的共享配置。

solution example

为了在多个项目中复制一个文件,您必须创建一个文件,然后将其添加为需要它的项目的链接。这可以通过右键单击项目并选择Add -> Existing Item...来完成。您将看到如下所示的对话框,并且您想从下拉列表中选择Add as Link选项,而不仅仅是Add

add link example

最后,编辑链接文件的属性以将其复制到输出目录。

properties example