0

当社のソフトウェアは、Autodesk Inventor のアドインとして機能します。これは、アプリケーション (DLL で構成される) フォルダーが EXE から完全に分離されていることを意味します。

問題は、Entity Framework が SQL CE プロバイダーをロードしようとすることにあります。SQL CE プロバイダーは、アプリケーションの残りの DLL の隣に非公開でインストールされます。SQL CE がインストールされていないマシンでアプリケーションを実行すると、次のエラーが発生します。

System.ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed.
at System.Data.Entity.Infrastructure.SqlCeConnectionFactory.CreateConnection(String nameOrConnectionString)
at System.Data.Entity.Internal.LazyInternalConnection.Initialize()
at System.Data.Entity.Internal.LazyInternalConnection.get_ProviderName()
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
at ...

すべての SQL CE インストール ファイルを Inventor の bin フォルダ(メイン EXE の隣)にコピーすると、すべて正常に動作しますが、これはオプションではありません。

別のプロバイダーを指定して、app.config を変更することを提案するいくつかのトピックを既に調査しました。それらのすべては、あれこれ似ています。しかし、私の場合はうまくいきません。app.config の変更は、プロバイダーの場所を指定するのに役立ちません。たとえ指定したとしても、構成を変更することはできません (別の構成を使用できる場合を除きます)。

それは可能ですか?Entity Framework が SQL CE プロバイダーを検索できるように、インストール フォルダーの場所を指定したいと思います。

4

1 に答える 1

0

それは不可能だと思います。メインの .exe 構成ファイルをプロバイダー登録で更新するか、SQL CE MSI をインストールする必要があります。

于 2013-06-11T17:09:31.367 に答える