2016-11-01 4 views
1

Может ли Microsoft Z3 .NET API обрабатывать .NET Core? Мы используем его в алгоритме планирования для школьного проекта, и мы считаем, что когда проект был обновлен до ядра .net, z3 перестала работать. Мы не можем найти информацию о том, что z3 используется с ядром .net.Использование Z3 с ядром ASP.NET

ответ

1

Z3 использует кодовые контракты, которые недоступны в ядре .NET. Однако у нас есть фиктивный класс, который их заменяет и который поставляется с исходным кодом, см. src/api/dotnet/core/DummyContracts.cs.

На данный момент, это не привязан к остальной части нашей строительной инфраструктуры, но вы можете построить их таким образом:

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

(Убедитесь, что вы обновить вашу копию исходного кода, как я только что совершил исправление для сборки ядра.)

+0

Вы знаете, по какой-либо причине мы получили бы эту ошибку? Unhandled Exception: 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 попытается найти libz3.dll при первом вызове функции Z3. Сообщение об ошибке означает, что libz3.dll не удалось найти; в Windows это должно быть в PATH, и пока вы строите вещи, он обычно находится в каталоге «build». –