首页 > 解决方案 > 命名空间“Microsoft.SqlServer”中不存在类型或命名空间名称“Management” - SqlParser 和 VSTS 自动构建

问题描述

我正在使用作为Microsoft.SqlServer.Management.SqlParser.Parser命名空间一部分的 Parser 来解析 Sql 语句,但是在测试时它可以正常工作;在 VSTS 中构建失败并出现以下错误:

错误 CS0234:命名空间“Microsoft.SqlServer”中不存在类型或命名空间名称“Management”(您是否缺少程序集引用?)

我通过添加对Microsoft.SqlServer.Management.SqlParser使用添加引用上下文和选择扩展的引用来引用该库。

我有以下导入

using Microsoft.SqlServer.Management.SqlParser.Parser;

并且正在执行解析器

var rst = Parser.Parse(sqlStr);  
return Json(rst.Errors, JsonRequestBehavior.AllowGet);

我假设我需要额外的库才能在 VSTS 中构建,但不确定哪个?也许这些库不是建立在 VSTS 上的?请协助解决。

标签: c#sql-serverparsingazure-devopsazure-pipelines

解决方案


如果您的目标是 SQL Server 2017,则需要在项目中包含SMO NuGet包。

否则,您将需要从您要定位或引用的 SQL 服务器版本和服务包级别的功能包中安装 SharedManagementObjects.msi。

SQL Server 2016 SP2 功能包
SQL Server 2014 SP2 功能包
SQL Server 2012 SP4 功能包


推荐阅读