8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ClickOnceでSystem.Data.SQLiteを使うアプリを発行する場合の注意点

Last updated at Posted at 2018-05-07

概要

ClickOnceでSystem.Data.SQLiteを使うアプリを発行する場合、
何も対処しないと実行時に以下の例外が発生してしまいます。
その対処法です。

ハンドルされていない例外: System.DllNotFoundException: DLL 'SQLite.Interop.dll' を読み込めません:指定されたモジュールが 見つかりません。 (HRESULT からの例外:0x8007007E)
   場所 System.Data.SQLite.UnsafeNativeMethods.sqlite3_config_none(SQLiteConfigOpsEnum op)
   場所 System.Data.SQLite.SQLite3.StaticIsInitialized()
   場所 System.Data.SQLite.SQLiteLog.Initialize()
   場所 System.Data.SQLite.SQLiteConnection..ctor(String connectionString, Boolean parseViaFramework)
   場所 System.Data.SQLite.SQLiteConnection..ctor(String connectionString)
   場所 SQLiteMigrationSample.Program.Main(String[] args)

やり方

プロジェクトの直下にx64とx86フォルダを作成します。
create_x84_x64_folder.png

追加したx64のフォルダに対して、右クリックから[追加]-[既存の項目]を選択します。
select_add_existing_items.png

x64に対応するSQLite.Interop.dllを選択し、[リンクとして追加]を行います。
対応するdllは、例えばpackages/System.Data.SQLite.Core.1.0.108.0/build/net46/x64/SQLite.Interop.dllにあります。
add_dll_as_link.png

同様にx86フォルダに対してもdllを追加します。
最終的に以下の感じになります。
added_dll_sample_image.png

[プロジェクトのプロパティ]-[発行タブ]-[アプリケーションファイル]に追加したdllがあればOKです。
added_dll_in_application_file.png

この状態で今まで通り発行すると、x64/x86フォルダのdllもパッケージに含まれ、正しく動作するようになります。

コメント

SQLite以外でも、x64/x86フォルダにDLLがあるライブラリで使えるはずです。

参考URL

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?