如何在VSO 2015构建服务器中添加文件夹以搜索路径



我正在尝试设置构建服务器时遇到问题。我们使用telerik,并安装了带有telerik控制面板的库。构建过程搜索dll的所有错误位置。

不用说,这些解决方案可以完美地构建在开发人员的机器上。

解决方案包含许多项目,而不是单一的主项目。我真的不想更改所有的项目文件。

我想要的是将telerik目录添加到AssemblySearchPaths,但是使用来自gui的msbuild参数只会让我覆盖AssemblySearchPath -结果是除了telerik文件之外的所有其他文件的位置都无法构建。

所以我找到了一个.targets文件,我在日志文件中读取它,构建使用它来设置AssemblySearchPaths。并且在这里添加teleerik目录确实奏效了(唉,我仍然无法让构建服务器找到nuget dll,但那是另一个故事)。

但是,根据所选的CPU和其他情况,构建使用另一个位置的另一个类似的命名为.targets的文件。此外,我发现将这些关键的定制隐藏在某个晦涩的自动安装文件中并不是最佳选择。

所以问题是:如何在框架已经定义的搜索路径上添加更多的搜索路径?

我对ms构建有点不熟悉,但我确实看到过一个完整的ms构建文件,这就是为什么我知道它定义了构建搜索路径。然而;不需要我更改解决方案中的项目的替代方案将适用于我。

谢谢!

首先,您需要清楚:当您在VSO中排队构建时,排队构建正在托管构建服务器上运行。然而,软件环境不同于开发机器,这就是为什么你可以在开发机器上成功构建,而不能在托管构建服务器上构建的原因。

如果您愿意,解决问题的一个更简单的方法是将开发人员机器设置为构建服务器。您可以用VSO注册该开发人员机器,然后所有构建将直接在开发人员机器上运行。有关如何设置构建控制器的详细信息,请查看这篇MSDN文章:https://msdn.microsoft.com/library/ee330987.aspx

如果你不喜欢为VSO设置本地构建服务器,你需要使用Nuget恢复功能来解决程序集引用问题,因为据我所知,配置AssemblySearchPaths不是那么方便。有关如何在VSO (TFS)构建过程中恢复NuGet包的详细信息,请查看链接:http://docs.nuget.org/consume/package-restore/team-build