0

我有一个名为 xyz.exe 的 C# winform 应用程序。它使用 xyz.config 文件运行。配置文件是一个纯文本文件,我在其中放置了运行我的应用程序所需的设置,例如它必须迭代多少次、要读取哪些文件、默认值是什么等等。它工作得很好。一切正常。今天我开始处理一些增强请求,我需要连接到 sql server 数据库并检索一些信息。非常直截了当。

如果我运行调试 (F5) 一切正常。但是,如果我通过键入 xyz.exe 从命令提示符运行它,则会引发异常“'System.Data.SqlClient.SqlConnectionFactory' 的类型初始化程序引发异常。” 它指向连接部分。如果我将 xyz.config 重命名为其他名称,异常就消失了。如果我创建一个空白 App.config(这将生成 xyz.exe.config),异常就消失了。

到底是怎么回事?谁能向我解释一下,可能的解决方案、选项、最佳解决方案是什么?有可能使应用程序不寻找 xyz.config 和 xyz.exe.config 没有抛出异常。在我介绍与 db 的连接之前没关系。

SqlConnection connection = new SqlConnection(
                                "user id=xx;" +
                                "password=xx;" +
                                "server=xx;" +
                                "database=xx; " +
                                "connection timeout=xx");

try
{
   connection.Open();
}

catch (Exception e)
{
   Console.WriteLine(e.ToString());
}

try
{
   SqlDataReader myReader = null;
   SqlCommand myCommand = new SqlCommand("select * from xx",
                                                             connection);
   myReader = myCommand.ExecuteReader();
   while (myReader.Read())
   {
      Console.WriteLine(myReader["xx"].ToString());
      Console.WriteLine(myReader["xx"].ToString());
   }
}
catch (Exception e)
{
   Console.WriteLine(e.ToString());
}
connection.Close();
4

1 回答 1

0

配置文件应该命名<exename>.exe.config,例如如果你的 exe 名称是xyz.exe,它的配置文件名称应该是xyz.exe.config.

如果要使用非标准名称,则必须手动读取配置文件。

于 2013-11-06T22:55:13.830 回答