5

在我们的构建服务器(Team City)上使用 MSBuild 构建 CLR 存储过程项目时,我们收到以下错误:

错误 MSB4019:未找到导入的项目“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\SqlServer.targets”。确认声明中的路径正确,并且该文件存在于磁盘上

我检查了该文件是否存在于磁盘上,果然不存在。我已经检查了我自己的机器,它确实存在。

我真的不想开始手动将文件复制到构建服务器。

这是正在导入到 proj 文件的 csproj 文件中的行:

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <Import Project="$(MSBuildToolsPath)\SqlServer.targets" />

这是由我们的 Team City Server 运行的 proj 文件中的行:

<Import Project="..\$(ProjectName).csproj"/>

我的问题是:

这个文件来自哪里?例如,它是否是 Visual Studio 安装的一部分。或者是否有一些重新分发包允许我在我们的构建服务器上编译这个项目?

谢谢

顺便说一句..如果我只是将文件复制到构建服务器上,它确实可以工作。

戴夫

4

2 回答 2

2

看起来它是 v2.0 框架安装的一部分,在添加之后会被移动到 v3.5 目录中。您可以重新安装框架的 v2.0 或手动将文件从 v3.5 文件夹中复制出来。

于 2010-03-19T04:04:08.113 回答
0

直到 Visual Studio 2012,SqlServer.targets都部署在 .NET Framework 的msbuild.exe位置,例如

  • c:\Windows\Microsoft.NET\Framework\v4.0.30319\
  • c:\Windows\Microsoft.NET\Framework\v3.5\
  • c:\Windows\Microsoft.NET\Framework\v2.0\

在现代版本中,从 Visual Studio 2013 开始,MSBuild 工具包含在 Visual Studio 中,MSBuild.exe并且.targets文件部署在它们自己的文件夹中。例如对于 Visual Studio 2013:

  • c:\Program Files (x86)\MSBuild\12.0\Bin\

(注:12.0 是 VS2013 的“内部”版本号)

重要说明:SqlServer.targets仅当您在 Visual Studio 部署中安装 SQL Server Data Tools 时才存在。

于 2016-06-07T16:30:40.087 回答