C# 发布的windows应用程序中出现异常,原因是无法加载文件或程序集';Microsoft.SqlServer.BatchParser“;
我正在开发windows应用程序,需要通过编程执行一些SQL脚本 为此,我使用的是程序集Microsoft.SqlServer.Smo,版本=14.100.0.0 这是我的密码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>
/// <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位复选框
- 用于发布的方法-单击一次
在安装exe安装程序之前,我强制用户在其计算机上预装.NET Framework 4.6两台主机上是否有相同的.NET Framework?是的,我强制用户在安装时安装相同的框架SQL Server管理支持不属于.NET Framework的一部分。这是一个单独的安装:我怀疑
Microsoft.SqlServer.BatchParser
将是该额外安装的一部分。好的,我将尝试将其作为预安装要求。您是否将BatchParser
添加到先决条件中?