【问题标题】:How to have msbuild copy files to output directory across references?如何让 msbuild 跨引用将文件复制到输出目录?
【发布时间】:2016-02-09 16:03:12
【问题描述】:

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

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

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

如何实现A需要的所有文件也复制到B的输出目录?

【问题讨论】:

  • 当您将输出目录设置保留为默认值时,这不是必需的。与构建系统抗争是您的特权,但当您这样做时,您必须提供帮助。您已经知道如何使用 COPY。

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


【解决方案1】:

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

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

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

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

【讨论】:

  • 问题是关于 C++,而不是 C#
猜你喜欢
  • 2010-12-19
  • 2011-08-20
  • 2017-03-10
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 2010-11-28
相关资源
最近更新 更多