Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
8
Help us understand the problem. What is going on with this article?
@minoru-nagasawa

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

More than 3 years have passed since last update.

概要

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
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
8
Help us understand the problem. What is going on with this article?