Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发布的windows应用程序中出现异常,原因是无法加载文件或程序集';Microsoft.SqlServer.BatchParser“;_C#_Sql Server_Windows_Visual Studio 2019 - Fatal编程技术网

C# 发布的windows应用程序中出现异常,原因是无法加载文件或程序集';Microsoft.SqlServer.BatchParser“;

C# 发布的windows应用程序中出现异常,原因是无法加载文件或程序集';Microsoft.SqlServer.BatchParser“;,c#,sql-server,windows,visual-studio-2019,C#,Sql Server,Windows,Visual Studio 2019,我正在开发windows应用程序,需要通过编程执行一些SQL脚本 为此,我使用的是程序集Microsoft.SqlServer.Smo,版本=14.100.0.0 这是我的密码 /// <summary> /// Executes the script query. /// </summary> /// <param name="connectionString">The connection string.</param>

我正在开发windows应用程序,需要通过编程执行一些SQL脚本

为此,我使用的是程序集Microsoft.SqlServer.Smo,版本=14.100.0.0

这是我的密码

 /// <summary>
    /// Executes the script query.
    /// </summary>
    /// <param name="connectionString">The connection string.</param>
    /// <param name="dbScriptData">The database script data.</param>
    private void ExecuteScriptQeury(string connectionString, string dbScriptData)
    {
        Logger.LogInfo("DB Setup: script execution start");

        SqlConnection conn = new SqlConnection(connectionString);
        //-- create SQL Server instance ---
        Server server = new Server(new ServerConnection(conn));
        server.ConnectionContext.ExecuteNonQuery(dbScriptData); // execute sql script
    }
//
///执行脚本查询。
/// 
///连接字符串。
///数据库脚本数据。
私有void executeScriptQuery(字符串连接字符串、字符串dbScriptData)
{
Logger.LogInfo(“数据库设置:脚本执行启动”);
SqlConnection conn=新的SqlConnection(connectionString);
//--创建SQL Server实例---
服务器服务器=新服务器(新服务器连接(conn));
server.ConnectionContext.ExecuteNonQuery(dbScriptData);//执行sql脚本
}
同样的代码在调试模式下运行良好。当我发布这段代码并在同一台机器上安装它的
.exe
时,它也在那里工作

但是当在另一台机器上安装
.exe
时,我在脚本执行时遇到异常

下面是我在日志中捕获的异常

错误消息:无法加载文件或程序集“Microsoft.SqlServer.BatchParser,版本=14.100.0.0,区域性=neutral,PublicKeyToken=89845dcd8080cc91”或其依赖项之一。试图加载格式不正确的程序

用于构建Windows应用程序的工具是Visual Studio 2019,我正在使用:

  • .NET Framework 4.6
  • 平台目标:“任意CPU”,未选中首选32位复选框
  • 用于发布的方法-单击一次
编辑1:


在安装exe安装程序之前,我强制用户在其计算机上预装.NET Framework 4.6

两台主机上是否有相同的.NET Framework?是的,我强制用户在安装时安装相同的框架SQL Server管理支持不属于.NET Framework的一部分。这是一个单独的安装:我怀疑
Microsoft.SqlServer.BatchParser
将是该额外安装的一部分。好的,我将尝试将其作为预安装要求。您是否将
BatchParser
添加到
先决条件中?