我有一个使用 Visual Studio 2012 编写的 C# 控制台应用程序。在应用程序中,我使用 Sql Server localdb 连接到数据库来存储信息。这在几台计算机上都可以正常工作,所有这些计算机都安装了 Visual Studio。
我想部署一个程序,只需要安装 Sql Server Express LocalDB,而不是更大的 Sql Server Express。但是,我的应用程序没有在目标计算机上运行。我已经在目标计算机上安装了 Sql Server Express LocalDB 2014。我可以使用命令行,使用 sqllocaldb 运行命令来验证它是否已安装并正在运行。
C:\Users\someuser\Desktop\Debug>sqllocaldb v
Microsoft SQL Server 2014 (12.0.2000.8)`
但是,当我在同一台目标计算机上运行我的应用程序时,出现以下错误。
C:\Users\someuser\Desktop\Debug>Testing_Console
11:21:07,912 [1] INFO TestingConsole.Program - 当前目录是 C:\Users\someuser\Desktop\Debug
额外信息:(空)
未处理的异常:System.Data .SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。无法创建自动实例。有关错误详细信息,请参阅 Windows 应用程序事件日志。
以下是我的 app.config 文件的开头,我在其中定义连接字符串。我尝试将直接文件路径放入 LM 文件,但这并没有解决问题。然而,这是意料之中的,因为该程序可以在安装了 Visual Studio 的计算机上的任何目录中运行。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<connectionStrings>
<add name="KomoLM_Console.Properties.Settings.LMConnectionString"
providerName="System.Data.SqlClient"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\LM.mdf;Integrated Security=True;MultipleActiveResultSets=True"
/>
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
我不知道问题是否与仅安装了 SQL Server Express LocalDB 2014 有关。谁能告诉我我的问题可能是什么?