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

How to add a folder to searchpaths in VSO 2015 build server

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

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

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

我想要的是将 telerik 目录添加到 AssemblySearchPaths,但是使用 gui 中的 msbuild 参数只能让我覆盖 AssemblySearchPath - 结果除了 telerik 文件之外的所有其他内容的位置变得未知无法构建。

所以我找到了一个 .targets 文件,我在日志文件中读到它被构建用来设置 AssemblySearchPaths。在这里添加 telerik 目录就成功了(唉,我仍然无法让构建服务器找到 nuget dll,但那是另一回事了)。

但是,我看到根据选择的 CPU 和其他情况,构建使用来自另一个位置的另一个类似命名的 .targets 文件。此外,我发现将这种重要的自定义隐藏在某个不知名的自动安装文件中并不是最佳选择。

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

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

谢谢!

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

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

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