2017-11-14 7 views
-4

私はマシンのDocumentフォルダ内の特定のフォルダからsqliteデータベースを読み込むwinformアプリケーションを持っています。だから私がやっているのは、モバイルデータベースからSqlサーバーにデータをインポートすることです。この機能はデバッグ時にスムーズに動作していますが、アプリを公開してインストールして実行すると、sqlite.interop.dllが見つかりません。私はちょうどx86とx64バージョンのdllをダウンロードして、プロジェクトでそれをインラインダウンしようとして、もう一度出版しました。しかし、それでもエラーは続く。公開されたWinformの問題

私の質問:interop.dllをアプリケーションで検出させる方法は何ですか?ここで

コードです:

try 
{ 
    var directory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 
    var cn = "Data Source=" + directory + @"\Samplefolder\" + txtfilename.Text; 

    using (SQLiteConnection conn = new SQLiteConnection(cn)) 
    { 
     conn.Open(); 
     using (SQLiteCommand cmd = new SQLiteCommand()) 
     { 
      cmd.Connection = conn; 
      cmd.CommandText = "SELECT * FROM Tablr"; 

      using (SQLiteDataReader dr = cmd.ExecuteReader()) 
      { 
       while (dr.Read()) 
       { 
        // getting values from dr and assigning to a property of a class 
       } 
      } 
     } 
    } 

    MessageBox.Show("Successful"); 
} 
catch(Exception message) 
{ 
    MessageBox.Show("Failed"); 
} 
+3

エラーは何ですか? – BugFinder

+0

オブジェクトのインスタンスにオブジェクト参照が設定されていません –

+1

デバッグメッセージを追加してください - エラーのより正確な場所を取得してください。 – BugFinder

答えて

0

私はSQlite.Interop.dllのx86およびx64 hereの両方をダウンロードした後、これを修正しました。その後 私のプロジェクトでx86とx64フォルダを作成し、それに対応してdllをフォルダに配置しました。その後、プロジェクトのプロパティを編集し、未チェックの32ビットを選択します

関連する問題