3

私はSqliteでユーザーコントロールを持っていました。コンパイルしてツールボックスに追加した後、新しいフォームにドラッグすると、以下に説明するエラーメッセージが表示されます。

「コンポーネント'UserControl1'の作成に失敗しました。エラーメッセージは次のとおりです。

私はこのテーマについてグーグルで検索しましたが、まだこの問題を解決できません。しかし、面白い部分は、参照によってフォームにハードコーディングして新しいコントロールを作成した場合、ユーザーコントロールが機能したことです。ドラッグアンドドロップでこの問題が発生したのはなぜですか?

もう1つの質問:Nugetを使用してsqliteをインストールしています。32ビットと64ビットの2つのバージョンがあります。どちらを参照として追加する必要がありますか?VS2010Ultimatesp1を使用しています。Sqlitev1.0.83.0。任意のCPUとしてdllをコンパイルしました。

4

2 に答える 2

1

SQLite の正しいバイナリをダウンロードした場合は、プロジェクトのビルド オプションに従って、SQLite.Interop.dll を Release フォルダーまたは Debug フォルダーにコピーします。

于 2014-03-02T07:44:46.927 に答える
1

これは SQLite とは別の問題であり、より具体的には、ツールボックスからユーザー コントロールをドラッグしようとしたときに DLL が見つからないことを扱っていると思います。私も同じ問題を抱えていました。ユーザーコントロールをプログラムで追加できましたが、Controls.Add(myUserControl)うまく機能しましたが、ツールボックスからドラッグできませんでした。いくつかの検索により、Hans Passant からの洞察を含む次のリンクにたどり着きました。

https://social.msdn.microsoft.com/Forums/en-US/e6ba24f2-4f2d-42bd-b2f2-1e00744e0052/dllimport-throws-systemdllnotfoundexception-in-usercontrol?forum=netfxbcl

要するに、設計者は DLL を探すパスを知らないということです。DllImportテストとして、パスをie内にハードコーディングした[DllImport(*full path here*)]ところ、ユーザー コントロールをツールボックスからデザイナにドラッグすることができました。(ユーザー コントロールを追加する前に、フル パスを追加した後に必ずビルドを実行してください!)

大規模なテストを行わなくても、完全修飾パスを削除できたようで、デザイナーはどこを見ればよいかを覚えているようでした。フォームからユーザー コントロールを削除し、問題なく再度追加できました。ただし、Visual Studio を閉じて再度開くと、ツールボックスからのユーザー コントロールのドラッグ アンド ドロップが再び失敗しました。願わくば、この情報が誰かが何が起こっているのかを理解したり、解決に向けて正しい方向に導いたりするのに役立つことを願っています.

于 2015-06-24T14:20:23.093 に答える