2016-11-01 5 views
1

Kann die Microsoft Z3 .NET API mit .NET Core umgehen? Wir verwenden es in einem Zeitplanungsalgorithmus für ein Schulprojekt, und wir glauben, dass z3 nicht mehr funktionierte, wenn das Projekt auf .net core aktualisiert wurde. Wir können keine Informationen darüber finden, dass z3 mit .net core verwendet wird.Verwenden von Z3 mit ASP.NET Core

Antwort

1

Z3 verwendet Codeverträge, die in .NET Core nicht verfügbar sind. Wir haben jedoch eine Dummy-Klasse, die sie ersetzt und die mit dem Quellcode geliefert wird, siehe src/api/dotnet/core/DummyContracts.cs.

Im Moment ist dies nicht in den Rest unseres Build-Infrastruktur gebunden, aber Sie können sie auf diese Weise bauen:

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

(Stellen Sie sicher, dass Sie Ihre Kopie des Quellcodes aktualisieren, wie ich gerade begangen Fix für den Core-Build.)

+0

Weißt du, warum wir diesen Fehler bekommen? Nicht behandelte Ausnahme: System.DllNotFoundException: DLL 'libz3.dll' konnte nicht geladen werden: Das angegebene Modul konnte nicht gefunden werden. (Ausnahme von HRESULT: 0x8007007E) bei Microsoft.Z3.Native.LIB.Z3_del_context (IntPtr a0) bei Microsoft.Z3.Context.Finalize() –

+0

Z3 ist systemeigener Code, der in libz3.dll implementiert wird und über .NET verfügt API in C# implementiert, und Sie müssen beide Programme ausführen, die Z3 verwenden. Microsoft.Z3.dll wird dann versuchen, libz3.dll beim ersten Aufruf einer Z3-Funktion zu finden. Sie Fehlermeldung bedeutet, dass libz3.dll nicht gefunden werden konnte; Unter Windows muss es im PATH enthalten sein, und während Sie Dinge erstellen, befindet es sich normalerweise im Verzeichnis "build". –

Verwandte Themen