【问题标题】:Executing PowerShell script file that contains Invoke-Sqlcmd from C# form application从 C# 表单应用程序执行包含 Invoke-Sqlcmd 的 PowerShell 脚本文件
【发布时间】: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


【解决方案1】:

嗨,你得到答案了吗?我面临同样的问题。

【讨论】:

    猜你喜欢
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    相关资源
    最近更新 更多