Ошибка Sql: не удалось загрузить файл или сборку 'microsoft.sqlserver.sqlclrprovider, version = 13.100.0.0, culture = neutral, publickeytoken=89845dcd8080cc91'
Хороший день.
Я получаю эту ошибку, я перепробовал все, что предлагалось на форуме, без успеха.
Мое приложение создает файл подключения SQL при нажатии кнопки Сохранить. Это ошибка, которую я получаю:
Не удалось загрузить файл или сборку 'Microsoft. SqlServer.SqlClrProvider, Version = 13.100.0.0, Culture = neutral, PublickeyToken=89845dcd8080cc91 ' или одна из его зависимостей. Система не может найти указанный файл.
Код:
using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Common;
private void btnSave_Click(object sender, EventArgs e) { try { if (cmbServerName.Text == "") { MessageBox.Show("Please Select/Enter Server Name","SQL Server Settings", MessageBoxButtons.OK,MessageBoxIcon.Information); cmbServerName.Focus(); return; } if (cmbAuthentication.SelectedIndex == 1) { if (txtUserName.Text == "") { MessageBox.Show("please enter user name", "SQL Server Settings", MessageBoxButtons.OK, MessageBoxIcon.Information); txtUserName.Focus(); return; } if (txtPassword.Text == "") { MessageBox.Show("please enter password", "SQL Server Settings", MessageBoxButtons.OK, MessageBoxIcon.Information); txtPassword.Focus(); return; } } Cursor = Cursors.WaitCursor; timer1.Enabled = true; if (cmbAuthentication.SelectedIndex == 0) { con = new SqlConnection(@"Data source= '" + cmbServerName.Text.ToString() + "';Initial Catalog=master;Integrated Security=True;"); } if (cmbAuthentication.SelectedIndex == 1) { con = new SqlConnection(@"Data Source= '" + cmbServerName.Text.ToString() + "';Initial Catalog=master;User ID= '" + txtUserName.Text.ToString() + "';Password='" + txtPassword.Text.ToString() + "'"); } con.Open(); if ((con.State == ConnectionState.Open)) { // MessageBox.Show("please enter password", "SQL Server Settings", MessageBoxButtons.OK, MessageBoxIcon.Information); if (MessageBox.Show("It will create the Database and configure the sql server, Do you want to proceed?", "SQL Server Settings", MessageBoxButtons.YesNo , MessageBoxIcon.Information) == DialogResult.Yes) { using (StreamWriter sw = new StreamWriter(Application.StartupPath + "\\SQLSettings.dat")) { if (cmbAuthentication.SelectedIndex == 0) { sw.WriteLine(@"Data Source= '" + cmbServerName.Text.ToString() +"';Initial Catalog=DigitalCourtRollDB;Integrated Security=True"); sw.Close(); } if (cmbAuthentication.SelectedIndex == 1) { sw.WriteLine(@"Data Source= '" + cmbServerName.Text.ToString() + "';Initial Catalog=DigitalCourtRollDB;User ID='" + txtUserName.Text.ToString()+"' ;Password= '" + txtPassword.Text.ToString() + "'"); sw.Close(); } CreateDB(); } } else { System.Environment.Exit(0); } } MessageBox.Show("The Database has been created and SQL Server setting has been saved successfully..." + "\r\n" + "Application will be closed,Please start it again", "", MessageBoxButtons.OK, MessageBoxIcon.Information); System.Environment.Exit(0); } catch (Exception ex) { MessageBox.Show("Unable to connect to sql server" + "\r\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { if ((con.State == ConnectionState.Open)) { con.Close(); } } } void CreateDB() { try { con = new SqlConnection(@"Data source= '"+ cmbServerName.Text.ToString() + "';Initial Catalog=master;Integrated Security=True;"); con.Open(); string cb2 = "Select * from sysdatabases where name='DigitalCourtRollDB'"; cmd = new SqlCommand(cb2); cmd.Connection = con; rdr = cmd.ExecuteReader(); if (rdr.Read()) { con = new SqlConnection(@"Data source='" + cmbServerName.Text.ToString() + "';Initial Catalog=master;Integrated Security=True;"); con.Open(); string cb1 = "Drop Database DigitalCourtRollDB"; cmd = new SqlCommand(cb1); cmd.Connection = con; cmd.ExecuteNonQuery(); con.Close(); con = new SqlConnection(@"Data source='" + cmbServerName.Text.ToString() + "';Initial Catalog=master;Integrated Security=True;"); con.Open(); string cb = "Create Database DigitalCourtRollDB"; cmd = new SqlCommand(cb); cmd.Connection = con; cmd.ExecuteNonQuery(); con.Close(); using (StreamReader sr = new StreamReader(Application.StartupPath + "\\DBScript.sql")) { st = sr.ReadToEnd(); Server server = new Server(new ServerConnection(con)); server.ConnectionContext.ExecuteNonQuery(st); } } else { con = new SqlConnection(@"Data source='" + cmbServerName.Text.ToString() + "';Initial Catalog=master;Integrated Security=True;"); con.Open(); string cb3 = "Create Database DigitalCourtRollDB"; cmd = new SqlCommand(cb3); cmd.Connection = con; cmd.ExecuteNonQuery(); con.Close(); using (StreamReader sr = new StreamReader(Application.StartupPath + "\\DBScript.sql")) { st = sr.ReadToEnd(); Server server = new Server(new ServerConnection(con)); server.ConnectionContext.ExecuteNonQuery(st); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { if ((con.State == ConnectionState.Open)) { con.Close(); } } }
Кто-нибудь сталкивался с этой проблемой раньше?
Я использую c# Visual Studio 2015. SQL server 2016.
Заранее большое вам спасибо.
Что я уже пробовал:
Я пробовал разные версии экземпляра SQL, SQL 2016 и 2014.
Я пытался запустить код на другом компьютере, на виртуальной машине, но все та же проблема