Team Build 2010 - 第三方程序集引用不复制到输出文件夹

Ter*_*ius 2 msbuild tfs assemblies tfsbuild tfs2010

当我在构建服务器上构建解决方案时,它会生成一个二进制文件夹,然后将这些二进制文件复制到最终的输出文件夹.在我的情况下,一些第三方程序集REFERENCES被正确复制,而其他第三方程序集REFERENCES没有被复制.请注意,我的解决方案项目不会直接引用要复制的程序集.

这意味着一切都很好.但是当我运行我的程序时它没有启动,因为它引用的程序集不能反过来加载它们的引用.

构建中的哪个进程确定将哪些程序集复制到二进制文件夹?有没有办法指定它应该复制所有程序集?

编辑:一种可能的解决方案是仅引用解决方案中某个项目中的所有必需程序集,但这会非常混乱.

Bri*_*ler 5

对于ASP.NET项目,有一个内置的机制.确保所需的程序集位于名为_bin_deployableAssemblies的项目下的文件夹中,它们将自动复制.要查看此自定义如何连接到Web项目的构建,请查找文件...

%PROGRAMFILES%\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets
Run Code Online (Sandbox Code Playgroud)

并查看_CopyBinDeployableAssemblies目标.在同一个文件中你可以看到它像这样引用...

<PropertyGroup>
  <PrepareForRunDependsOn>
    $(PrepareForRunDependsOn);
    CopySilverlightApplications;
    _CopyBinDeployableAssemblies;
  </PrepareForRunDependsOn>
  ...
Run Code Online (Sandbox Code Playgroud)

您可以对任何项目执行类似的自定义,因为目标PrepareForRun是Visual Studio中常见MSBuild目标的一部分.