msbuild 在 TFS 中构建 sql clr dll 时出错

msbuild error building sql clr dll in TFS

我们有 SQL 很久以前开发的 CLR dll,我们一直在使用。不幸的是,我们的日常 builds.We 从未将我们的 sql 服务器从 2008 R2 升级到 2014。所以我打开了项目并将其升级到 visual studio 2013 项目(我们已经有一段时间没有打开它了)。我还将目标框架从 3.5 升级到 4.5.1。最后,我将目标 sql 服务器版本更改为 2014。我能够在本地构建它。然后我尝试将它添加到我们的 TFS 构建中并收到以下错误:

E:\Builds\TRSApps\Dev\Sources\Shared Objects\Components\FrsSqlCLR\VB Code\FrsSqlCLR.vbproj (76): The imported project "C:\Program Files (x86)\MSBuild.0\bin\amd64\SqlServer.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.

我能够解决问题。我在本地搜索了"SqlServer.targets",在.net 3.5 framework文件夹下找到了(不是在4.x下): C:\Windows\Microsoft.NET\Framework\v3.5

我只是将它复制到它在上面寻找它的位置,它解决了导致我提出问题的问题:

  1. TFS 是否在正确的位置寻找 SqlServer.targets?如果是这样,那为什么 SqlServer.targets 不在那里?
  2. 我需要在构建机器上安装什么吗?
  3. 为什么文件在3.5框架文件夹而不是4.x框架文件夹

虽然我能够通过从 3.5 框架文件夹复制它来解决它,但这似乎是一种 hacky 解决方案。我想要详细信息,以便将来升级我们的 tfs 服务器时,我拥有所有详细信息。

您需要在构建服务器上安装 Visual Studio 2013。还有 Sql 2013 年服务器数据工具。

一旦你将它们放在构建服务器上,它应该按原样构建。