Visual Studio构建定义 - 如何添加其他(dll)文件来构建?

时间:2011-12-21 09:34:25

标签: visual-studio-2010 tfs tfs2010 tfsbuild

我们在团队基础服务器中有一个asp.net c#网站。我们的项目包括许多第三方dll,它们位于所有开发人员的bin /文件夹下。我们正在尝试通过在tfs中使用构建定义来调整构建策略。

我们尝试在与develeoper计算机不同的服务器上构建项目,并且构建失败,因为这些dll不存在。

我的问题是;我们如何将这些dll用于构建定义?

希望我明确表示,因为我们显然是tfs构建服务的新手:)

谢谢大家。

4 个答案:

答案 0 :(得分:6)

感谢您的回答。实际上,我们进一步研究了它,并找到了如下解决方案:

  • 将dll放入Web应用程序下的_bin_deployableAssemblies文件夹中(此文件夹的名称很重要)
  • 在构建定义的MSBuild Arguments部分中,添加/ p:ReferencePath =“”

解决了这个问题。提前再次感谢您。

答案 1 :(得分:4)

您可以(#1)在执行构建的服务器中使这些第三方DLL可用,或者(#2)将它们签入源代码控制中。

这是一个讨论过去曾多次发生,一般来说,最明智的做法是继续选择#2。

以下是SO中的其他类似问题,可能对您有用:
How to deal with external assemblies
Team Build 2010 - Third Party Assembly References not copying to output folder
Visual Studio Package build and DLLs in private bin path

答案 2 :(得分:2)

您需要将文件添加到Source Control存储库中。在我们的解决方案中,我们有一个\3rd Party文件夹,其中包含我们项目引用的所有第三方程序集。

\Main
  \3rd Party
  \Application
  \Modules
  \etc.

答案 3 :(得分:0)

关于KemalTaşkın的回复,很好的答案!请注意,有时在使用/ p:ReferencePath =“”

时需要在结尾加上'\'

例如: / p:ReferencePath =“ path \ to \ commondlls \”

对于某些版本的MSBuild.exe,请删除最后一个'\'。

这也使用TFS 2015 MSBuild Task的MSBuild Argument字段解决了我的问题。