2016-11-01 14 views
1

Microsoft Z3 .NET APIは.NETコアを処理できますか?学校のプロジェクトのスケジューリングアルゴリズムで使用しています。プロジェクトが.netコアにアップグレードされると、z3は機能しなくなりました。 .netコアで使用されているz3に関する情報は見つかりません。ASP.NETコアでZ3を使用する

答えて

1

Z3は.NETコアでは使用できないコード契約を使用しています。ただし、それらを置き換えるダミークラスがあります。ソースコードにはsrc/api/dotnet/core/DummyContracts.csがあります。現時点で

が、これは私たちのビルドインフラの残りの部分に結合されていないが、あなたはthuslyそれらを構築することができます。

cd src/api/dotnet/core 
dotnet restore 
dotnet build 

(私は約束通り、あなたがソースコードのコピーを更新していることを確認しますコアビルドの修正)

+0

このエラーが表示される理由は何ですか? 未処理の例外:System.DllNotFoundException:DLL 'libz3.dll'を読み込めません:指定されたモジュールが見つかりませんでした。 (HRESULTからの例外:0x8007007E)Microsoft.Z3.Native.LIB.Z3_del_context(IntPtr a0)、Microsoft.Z3.Context.Finalize() –

+0

Z3は、libz3.dllに実装されたネイティブコードであり、.NET APIはC#で実装されており、両方ともZ3を使用するプログラムを実行する必要があります。 Microsoft.Z3.dllは、Z3関数の最初の呼び出しでlibz3.dllを見つけようとします。エラーメッセージは、libz3.dllが見つかりませんでした。 Windowsでは、PATHにある必要があります。物事を構築している間は、通常は「build」ディレクトリにあります。 –

関連する問題