在我们的构建服务器(Team City)上使用MSBuild构建CLR Storedprocedure项目时,我们收到以下错误:
错误MSB4019:导入的项目 “C:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \ SqlServer.targets” 没找到。确认路径 在声明中 正确,并且文件存在 磁盘
我已经检查过该文件是否存在于磁盘上,而且确实不存在。我已经检查了自己的机器,它确实存在。
我真的不想开始手动将文件复制到构建服务器。
这是csproj文件中导入到proj文件的行:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildToolsPath)\SqlServer.targets" />
以下是我们的Team City Server正在运行的proj文件中的一行:
<Import Project="..\$(ProjectName).csproj"/>
我的问题是:
此文件来自哪里?它是Visual Studio安装的一部分吗?或者是否有一些重新分发包允许我在我们的构建服务器上编译这个项目?
由于
BTW ..如果我只是将文件复制到Build服务器上,它确实可以工作。
戴夫
答案 0 :(得分:2)
看起来它是v2.0框架安装的一部分,在添加之后会被移动到v3.5目录中。您可以重新安装框架的v2.0,也可以手动将文件复制到v3.5文件夹中。
答案 1 :(得分: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:
(注意:12.0是VS2013的“内部”版本号)
重要说明:SqlServer.targets
仅在Visual Studio部署中安装SQL Server数据工具时才存在。