Visual Studio 2008 - 将文件在构建时移动到 bin/目录

13

编辑:这是用C#编写的VS2008应用程序。

我在我的解决方案中有一个名为的文件夹

_lib/ 

这是我存放动态链接库(DLL)的地方,这样当我引用它们时,它们就会被构建到bin/文件夹中。

现在我有一个新项目解决方案。它是一个DLL,但不应该被引用(它是第三方应用程序所需的)。因此,在构建时,我希望将其从_lib/复制到bin/,但在项目中不引用它。

我已经将_lib/文件夹包含在我的应用程序中,并对该DLL的属性进行了“始终复制”的选择。这几乎奏效了,它会将文件与文件夹一起复制,因此我的目录结构如下:

/bin/_lib/thedll.dll

不要使用

/bin/thedll.dll

有什么想法吗?


这是一个C++项目吗?使用的是VS2010吗? - ThomasMcLeod
这是C#和VS2008。我会编辑这些信息的。 :) - Ev.
https://dev59.com/l3NA5IYBdhLWcg3wUL_n有相同的问题,但有几个不同的答案。 - Ken Wayne VanderLinde
1
复制是自定义构建步骤吗? - ThomasMcLeod
1
你可以继续添加更多的标签,因为这对我在C++方面也很有帮助。 - Shereef Marzouk
1个回答

29

在Visual Studio中按照以下步骤操作:

  • 展开相关的项目树

  • 双击 Properties 元素

  • 在打开的窗口中点击 Build Events 选项卡

  • Post-build event command line 文本区域中添加以下内容:

    xcopy "$(ProjectDir)_lib\file.ext" "$(ProjectDir)bin\$(ConfigurationName)"
    
  • 在 Visual Studio 旁边打开预期输出文件夹

  • 按下 CTRL+Shift+B 确保保存和构建所有内容

  • 当你的文件出现时,感受到成就感油然而生

  • :)

哦,现在你可以将 Copy to output directory 设置为 Do not copy


失望:啊啊啊,我的成就感从未如此之高!嘿嘿 :) 感谢您的答案,它确实起作用了。我曾考虑将其作为后置构建任务来完成,但是我认为“肯定有一个设置可以直接复制它”,但是遗憾的是,没有。感谢您的确认和详细答案 :) - Ev.
2
只是进行了一个小编辑 - 添加了/Y,以便覆盖输出目录中的现有文件。如果没有这个选项,在第一次构建之后会导致错误。 - Ev.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接