c# - 检测是否安装了 SQLCMD.exe 的正确方法?

标签 c# .net sqlcmd

我正在创建一个类库,它将 .SQL 文件作为输入 (FileInfo) 和一个连接字符串。然后它尝试对连接执行 sql 文件。

我决定支持微软的SMO和SQLCMD.exe

在测试中,我注意到在我的环境中的许多机器上,SQLCMD 没有默认安装。我的程序在尝试运行进程 SQLCMD.exe 时出错。

在不搜索整个硬盘驱动器的情况下查找它的正确方法是什么?是否有一个通用的注册表位置来指定它是否已安装?通常在安装时,我认为设置了 PATH 位置。

非常感谢。

最佳答案

我有一台配备 64 位 SQL SERVER (2k8 R2) 的 64 位机器,我的 SQLCMD.EXE 位于 c:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE .

它也在路径中。

您可以直接从 SQL Server 注册表位置查找路径:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Tools\ClientSetup\path

或者不同版本的变体。

这里的大问题是 SQLCMD 是客户端工具的一部分,而不是 SQL Server,所以我认为您不能要求 SQL Server 告诉您。当然,除非您在服务器本身上运行。

关于c# - 检测是否安装了 SQLCMD.exe 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8652748/

相关文章:

c# - 这个 MSDN CompareExchange 示例如何不需要 volatile 读取?

.net - DotNetNuke 是否支持 ASP.NET MVC?

powershell - 在 Azure DevOps 发布管道中从 PowerShell 执行 SQLCMD.exe

sql-server - 即使正在使用,也使用 MSBuild 删除数据库

c# - Xamarin iOS 项目中的 Newtonsoft.Json 反序列化对象

c# - 在 Metro 风格应用程序中使用遗留程序集

.net - .NET 中的两个有向列表枚举器

command-line - 如何在批处理文件中创建 OR 语句?

c# - XAML 自定义文本框光标停留在输入开始处

c# - 新的 .Net Core 库序列化属性不起作用