私はMonoを初めて使用し、Monoでwinformsアプリを実行するための非常に基本的な概念実証テストを実行しようとしています。VS2012で非常にシンプルなアプリを作成し(基本的に1つのボタンといくつかのデータアクセスコードがあります)、MoMAで実行すると、すべてがチェックアウトされます。しかし、Monoで.exeを実行しようとすると(Mono-2.10.9コマンドプロンプトを使用して)、エラーログに次のエラーが表示されます。
Unhandled Exception: System.NullReferenceException: Object reference not set to an
instance of an object
at Mono.Data.Tds.Protocol.TdsConnectionPool.GetConnection () [0x00000] in <filename
unknown>:0
at System.Data.SqlClient.SqlConnection.Open () [0x00000] in <filename unknown>:0
at MonoWinForm1.DataAccess.ExecuteSQLSelect (ConnectionStrings connectionString,
System.String sql) [0x00000] in <filename unknown>:0
at MonoWinForm1.Form1..ctor () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) MonoWinForm1.Form1:.ctor ()
at MonoWinForm1.Program.Main () [0x00000] in <filename unknown>:0
私はこの記事をモデルとして使用していました:http ://www.mono-project.com/Guide:_Porting_Winforms_Applications 。C#を使用してVS2012で記述およびビルドでき、Monoを使用して実行できることを示しているようですが、データコードには当てはまらないことは明らかです。例外の原因となるメソッドは次のとおりです。
DataSet results = new DataSet();
using (SqlConnection connection = new SqlConnection(GetConnectionString(connectionString)))
{
using (SqlCommand command = new SqlCommand(sql, connection))
{
connection.Open();
command.CommandType = CommandType.Text;
command.CommandTimeout = Int32.Parse(ConfigurationManager.AppSettings["SQLCommandTimeout"]);
SqlDataAdapter adapter = new SqlDataAdapter(command);
adapter.Fill(results);
}
}
アプリを作成してMonoで実行するよりも複雑だと思います。誰かが私を正しい方向に導いてくれたら、本当にありがたいです。ありがとう。