VisualStudioVersion属性要求v11文件夹包含缺少的SQLDB / DAC文件夹

时间:2014-09-29 18:58:40

标签: visual-studio-2010 visual-studio msbuild msbuildcommunitytasks msbuildextensionpack

我正在构建一个部署脚本,该脚本应该使用主机上可用的文件版本来运行包含的任务/目标。我的本地计算机(Windows 7 64位)安装了Visual Studio 10,2013和2014,所以当我探索C:\ Program Files(x86)\时,我看到Microsoft Visual Studio 10.0,Microsoft Visual Studio v11 .0,Microsoft Visual Studio v12.0,Microsoft Visual Studio v14.0但从Microsoft Visual Studio C的内容中丢失:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions \ Microsoft是... SQLDB \ Dac \ 120 \ Microsoft.Data.Tools.Schema.Tasks.Sql.dll MSbuild期望存在以便属性运行我的数据库部署脚本。

C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ SSDT \ Microsoft.Da ta.Tools.Schema.SqlTask​​s.targets(469,5):错误MSB4062:" SqlModelResolutionTask"无法从程序集C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Dac \ 120 \ Microsoft.Data.Tools.Schema.Tasks.Sql.dll加载任务。 无法加载文件或程序集' file:/// C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Dac \ 120 \ Microsoft.Data.Tools.Schema .Tasks.Sql.dll'或其中一个依赖项。该系统找不到指定的文件。  确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类。

我需要在我的计算机上安装什么软件包/ SDK才能获得..SQLDB \ Dac \ 120 \ Microsoft.Data.Tools.Schema.Tasks.Sql.dll以及成功构建我需要的其他服务包情况?

1 个答案:

答案 0 :(得分:2)

这里的问题是,当从命令行运行构建时,MSBuild必须猜测VisualStudioVersion的值,如果它没有明确设置。目标文件默认为v11.0(VS2012),但您需要12.0(VS2013)。在您的脚本中,您可以明确指定版本:

msbuild <myproject.sqlproj> /p:VisualStudioVersion=12.0

这应该确保使用VS2013目标文件。同样,对于2012年,您将设置版本= 14.0。