4

FluentMigrator.Runner を参照する移行プロジェクトがあります。このアセンブリは、System.Data.SQLite.dll の 32 ビット バージョンを参照します。したがって、このプロジェクトを 64 ビット サーバーにデプロイすると、例外が発生します。

不正な形式のプログラムをロードしようとしました。

ソリューション内のすべての System.Data.SQLite.dll を削除すると、SQLite も必要ありません。すべて正常に動作します。しかし、これを解決するためのより良い方法を探しています... FluentMigrator が更新された場合、この 32 ビット アセンブリが再び使用されるためです。

この間接参照アセンブリを出力ディレクトリにコピーしないように Visual Studio に指示する方法はありますか? または、不要な dll をすべて削除するよりも良い解決策はありますか?

編集: FluentMigrator (1.0.1.0) の最新の Nuget パッケージを使用しています

Edit2: FluentMigrator-Package の FluentMigrator.Runner.dll も 32 ビットのみであるため、FluentMigrator.Tools NuGet-Package の FluentMigrator.Runner.dll の AnyCPU バージョンを参照しています。しかし、私の問題は、32 ビット版の System.Data.SQLite.dll です。FluentMigrator.Tools パッケージの AnyCPU フォルダに別の System.Data.SQLite.dll がありますが、この DLL は 32bit 版と同等のバイナリです (なぜ??)...

4

1 に答える 1

2

System.Data.SQLite.x64 nuget パッケージをインストールすることで、この問題を解決しました。

于 2011-11-22T16:21:26.817 に答える