Использование SQLite в Phalanger

В настоящее время я пытаюсь скомпилировать работающий проект PHP в.Net DLL. В моем решении Phalanger/PHP используются PDO и SQLite. Когда я добираюсь до части, которая создает мой объект PDO:

$this->db = new \PDO('sqlite:'.$fileName, null, null, [PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);

Я получаю простое исключение "Драйвер не найден".

Я не могу найти много полезной информации, поэтому надеюсь, что у кого-то есть опыт.

В моих ссылках на проект я имею:

  • PhpNetPDO
  • PhpNetPDOSQLite
  • PhpNetSQLite

У меня также есть App.config с:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <configSections>
    <section name="phpNet" type="PHP.Core.ConfigurationSectionHandler, PhpNetCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0a8e8c4c76728c71" />
  </configSections>

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="Phalanger"/>
    </assemblyBinding>
  </runtime>

  <phpNet>
    <classLibrary>
      <add assembly="PhpNetSQLite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2771987119c16a03" section="sqlite"/>
      <add assembly="PhpNetPDO, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2771987119c16a03" section="pdo"/>
      <add assembly="PhpNetPDOSQLite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2771987119c16a03" section="pdosqlite"/>
    </classLibrary>
  </phpNet>
</configuration>

Хотя App.config кажется совершенно неактуальным.

В веб-приложении (насколько я могу судить) мне нужен PHP.ini, в котором определен мой sqlite dsn. Есть ли эквивалентный файл для Phalanger, особенно когда вы создаете dll? Как мне указать мой проект на драйвер SQLite?

Я также попытался создать систему odbc dsn под названием sqlite, но безуспешно.

Может кто-нибудь дать мне совет или указать хороший урок?

1 ответ

Ух ты, ошибка новичка! У меня была информация о конфигурации Phalanger в App.config в исходном проекте, который компилировался в dll, но не в App.config в проекте, который вызывал dll. Глупо, глупо, глупо!

Другие вопросы по тегам