【发布时间】:2022-11-23 06:42:11
【问题描述】:
我有 ps1 脚本,其中包含用于执行一些 sql 查询的 Invoke-Sqlcmd 命令。 我正在使用以下代码从 c# 表单应用程序执行此 ps1 文件:
var ps1File = @executeChangeScriptPs1FilePath;
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "powershell.exe",
Arguments = $"-NoExit -ExecutionPolicy ByPass -File \"{ps1File}\" \"{args0}\" \"{args1}\" \"{args2}\" \"{args3}\" \"{args4}\"",
UseShellExecute = false,
Verb = "runas"
};
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
process.Close();
但它在 ps1 窗口中给出以下错误;
Invoke-Sqlcmd:无法加载文件或程序集 'Microsoft.SqlServer.BatchParser,版本=15.100.0.0,文化=中性, PublicKeyToken=89845dcd8080cc91' 或其依赖项之一。这 系统找不到指定的文件。
当我直接从 powershell 执行 Invoke-SqlCmd 命令时,它的工作。但是当我从 C# 应用程序执行时给出提到的错误。
有谁知道如何解决这个问题?
这里 ss 用于 powershell 屏幕。从 C# 应用程序打开。右边一个直接打开了。
【问题讨论】:
-
下载并安装 SQL Server Data Tools,然后重新启动
-
我认为我有 sql server 数据工具,因为 Invoke-Sqlcmd 命令正在运行直接从 Windows 打开的 powershell。我添加了 ss 进行比较。
标签: c# powershell invoke-sqlcmd