强制外部文件在发布时复制到bin文件夹

Ale*_*AIT 11 .net asp.net msbuild vs-web-application-project

我有一个引用第三方程序集的Web应用程序项目,该程序集又使用它在运行时需要查找的一些本机dll.因此,我想将这些dll添加到项目的bin文件夹中,以便绝对可以找到它们.

但是,如果我将文件添加到/ bin /中的项目,选择"复制到输出",文件将被编译并发布到/ bin/bin中.将它们添加到根文件夹是有效的,但几乎不是正确的解决方案.

将它们添加到构建目标"AfterBuild"在发布时无效(例如"构建部署包")

它还必须在通过TFS构建解决方案时工作,其中调用MSBuild目标_CopyWebApplicationLegacy.

Ale*_*AIT 10

解决方案是我已经尝试过的事情的组合:

  • 在项目中包含"Bin"文件夹
  • 添加所需的文件(由于我们的开发结构,我将它们添加为链接)
  • 设置以下属性:"构建操作=内容"和"复制到输出=不复制"

现在,即使在TFS上自动化构建时,文件也会在发布时复制到bin文件夹.

需要它的组件是GdPicture,它在运行时使用了几个本机DLL.

  • bin文件夹永远不应该是解决方案的一部分.它只是一个输出文件夹.如果您使用测试用例,TFS等输出文件夹将被重定向.将选项设置为"不复制"将导致程序集丢失.对不起说:"非常糟糕的主意" (8认同)
  • 在源代码管理下包含Bin文件夹会导致不必要的签入 (4认同)