1

我正在构建一个部署脚本,它应该使用主机上可用的文件版本来运行包含的任务/目标。我的本地机器(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.Data.Tools.Schema.SqlTask​​s.targets(469,5): error MSB4062: The "SqlModelResolutionTask" task could not be从程序集 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 以及在我的案例中成功构建所需的其他服务包?

4

1 回答 1

2

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

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

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

于 2014-09-30T05:58:33.010 回答