0

Mono で実行する必要がある MySql データベース コンソール アプリでエラーが発生しました。Microsoft の .NET では問題なく動作しますが、Mono 2.11.4 では動作しません。

参照の「ローカルのコピー」設定のほとんどを「true」に設定しようとしましたが、役に立ちませんでした。

アプリケーションの開始時に、すぐに次の例外が発生します。

Unhandled Exception:

System.TypeInitializationException: An exception was thrown by the type initializer for System.Data.Entity.ModelConfiguration.Utilities.TypeExtensions ---> System.InvalidProgramException: Invalid IL c
ode in System.Data.Metadata.Edm.PrimitiveType:GetEdmPrimitiveTypes (): method body is empty.

  at System.Data.Entity.ModelConfiguration.Utilities.TypeExtensions..cctor () [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at System.Data.Entity.Internal.DbSetDiscoveryService.GetSets () [0x00000] in <filename unknown>:0
  at System.Data.Entity.Internal.DbSetDiscoveryService.InitializeSets () [0x00000] in <filename unknown>:0
  at System.Data.Entity.DbContext.DiscoverAndInitializeSets () [0x00000] in <filename unknown>:0
  at System.Data.Entity.DbContext.InitializeLazyInternalContext (IInternalConnection internalConnection, System.Data.Entity.Infrastructure.DbCompiledModel model) [0x00000] in <filename unknown>:0
  at System.Data.Entity.DbContext..ctor (System.String nameOrConnectionString) [0x00000] in <filename unknown>:0
  at oldforum2vanille.NewForum.vforumEntities1..ctor () [0x00000] in <filename unknown>:0
  at oldforum2vanille.Program.ConvertDiscissionTopics (Int32 newforumid, System.String forumtitle) [0x00000] in <filename unknown>:0
  at oldforum2vanille.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for System.Data.Entity.ModelConfiguration.Utilities.TypeExtensions ---> System.In
validProgramException: Invalid IL code in System.Data.Metadata.Edm.PrimitiveType:GetEdmPrimitiveTypes (): method body is empty.

  at System.Data.Entity.ModelConfiguration.Utilities.TypeExtensions..cctor () [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at System.Data.Entity.Internal.DbSetDiscoveryService.GetSets () [0x00000] in <filename unknown>:0
  at System.Data.Entity.Internal.DbSetDiscoveryService.InitializeSets () [0x00000] in <filename unknown>:0
  at System.Data.Entity.DbContext.DiscoverAndInitializeSets () [0x00000] in <filename unknown>:0
  at System.Data.Entity.DbContext.InitializeLazyInternalContext (IInternalConnection internalConnection, System.Data.Entity.Infrastructure.DbCompiledModel model) [0x00000] in <filename unknown>:0
  at System.Data.Entity.DbContext..ctor (System.String nameOrConnectionString) [0x00000] in <filename unknown>:0
  at oldforum2vanille.NewForum.vforumEntities1..ctor () [0x00000] in <filename unknown>:0
  at oldforum2vanille.Program.ConvertDiscissionTopics (Int32 newforumid, System.String forumtitle) [0x00000] in <filename unknown>:0
  at oldforum2vanille.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

http://alpascual.com/post/2011/05/27/Error-Unable-to-find-the-requested-Net-Framework-Data-Provider-It-may-not-で提案されたソリューションをすでに試しましたbe-installed.aspx (彼のエラー メッセージはほぼ同じであるため) なので、これらの行を app.config に追加しました。

<system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data" />
      <add name="ADO.Net driver for MySQL" invariant="MySql.Data" description="ADO.Net driver for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data.MySqlClient, Version=6.6.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
</system.data>

構成を少しいじった後、Entity Framework はこれらの行のために MySql を再び使用するようになりましたが、Mono はこの構成をスキップし、上記の未処理の例外を再び与えます。:(

アイデアはありますか?私は何かを忘れていますか?

4

1 に答える 1

1

これは、Mono でサポートされているシナリオではありません。System.Data.Entity.dll などの Microsoft 実装固有のランタイム ライブラリを Mono で実行することは想定されていません。

Entity Framework は最近オープン ソース化され (バージョン 6.0)、最新の Mono バージョンにバンドルされています。Mono は、以前のバージョンの Entity Framework をサポートしていません。

于 2012-10-01T19:27:44.337 に答える