Ошибка запуска .exe на другом компьютере

Я написал настольное приложение (Windows Forms) на .NET Framework 4.0, используя Visual Studio 2010 и SQL Server 2008.

В папке /bin он создает файл .exe, который отлично работает на моем компьютере и других компьютерах, если на них установлены Visual Studio и SQL Server. Если они не установлены, выдается сообщение об ошибке, и файл .exe не запускается.

На другом ПК я протестировал его как в Windows XP sp3, так и в Windows 7 после установки .NET Framework 4.0, а также установил Windows Installer 4.5 для WinXP sp3, но безуспешно.

В чем проблема? Что-то не так с моей строкой подключения:

@“Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\db.mdf;Integrated Security=True;User Instance=True";

Как я могу запустить файл .exe на других компьютерах?

Спасибо, это очень помогло, и теперь я понимаю, что проблема только в строке подключения, но проблема все еще не решена. Теперь я использую эту строку подключения

Data Source=HOME-9BE0D501F6\SQLEXPRESS;AttachDbFilename=|DataDirectory|\shopdb.mdf;Integrated Security= True;User Instance=True

WA-PC - это имя моего компьютера, на котором я работал, и он работал нормально, но когда я скопировал папку bin на другой компьютер с именем HOME-9BE0D501F6, он все еще не работал. Я изменил строку подключения в файле app.config с этим именем, но по-прежнему получаю ошибку подключения. Я не устанавливал SQL Server 2008 на этот компьютер. Надо ли его устанавливать? Что мне еще делать?


person user2798264    schedule 10.10.2013    source источник


Ответы (3)


.\SQLEXPRESS означает экземпляр SQL Express на локальном компьютере, поэтому, если SQL Server не установлен, вы получите сообщение об ошибке.

person Giannis Paraskevopoulos    schedule 10.10.2013

измените строку подключения на правильное имя сервера

Data Source=<servernameinwhichSQLServerInstalled>\SQLEXPRESS;AttachDbFilename=|DataDirectory|\db.mdf;Integrated Security=True;User Instance=True";

Если вы используете (локальный) или DOT (.), Это означает, что он должен подключиться к компьютеру, на котором запущено приложение. В этом случае, если у вас нет SQL-сервера или базы данных, установленных на другом компьютере, это вызовет эту ошибку.

person Rajesh Subramanian    schedule 10.10.2013
comment
Укажите пример для ‹servernameinwhichSQLServerInstalled›, о чем я могу написать здесь. Я не понимаю, что будет здесь, поскольку он будет работать на разных машинах, и какое имя сервера. - person user2798264; 10.10.2013
comment
ваше системное имя или IP-адрес, на котором будет установлено приложение - person Rajesh Subramanian; 10.10.2013
comment
Я использовал это: Источник данных = HOME-9BE0D501F6 \ SQLEXPRESS; но у меня все равно не получилось. Нужно ли мне также устанавливать на этот компьютер sql server 2008? Что еще мне нужно сделать - person user2798264; 10.10.2013

Проблема (как уже упоминалось) заключается в том, что вы указываете соединению SQL использовать имя локального ПК, а не имя сервера (на котором установлен экземпляр SQL).

Простой способ найти это - открыть вашу SQL Managment Studio / Query Analyzer / WinSQL / SQL Script editor и запустить следующий скрипт.

use [Database name in question]
Select @@ServerName

Замените ваш;

Data Source=.\SQLEXPRESS

С участием

Data Source=@@ServerNameResult\SQLEXPRESS

Надеюсь, это поможет.

person Hexie    schedule 10.10.2013
comment
Я использовал это: Источник данных = HOME-9BE0D501F6 \ SQLEXPRESS; но у меня все равно не получилось. Нужно ли мне также устанавливать на этот компьютер sql server 2008? Что еще мне нужно сделать - person user2798264; 10.10.2013
comment
Да, вам также потребуется установить SQL Server на эту рабочую станцию ​​/ сетевой компьютер, помните, что вы пытаетесь прикрепить файл .mdf, следовательно, вам нужен SQL Server. PS: Вы запускали вышеупомянутый сценарий SQL, чтобы получить это имя SQL Server, это могло быть правильно - просто очень длинное имя. - person Hexie; 11.10.2013
comment
@ user2798264 Замечательно, если бы вы могли mark this as the answer и проголосовать за него (щелкните стрелку вверх рядом с 1 - слева от вопроса), были бы очень признательны. - person Hexie; 15.10.2013