Я не могу говорить о SQLLite, никогда не развертывая его, но у меня есть некоторая информация о SQLCE.
Во-первых, вам не нужно развертывать его как предварительное условие.Вы можете просто включить DLL в свой проект.Вы можете проверить эту статью , которая объясняет как.Это дает вам полный контроль над тем, какая версия используется, и вам не нужно заниматься ее установкой как таковой.
Во-вторых, я не рекомендую развертывать базу данных в виде файла данных и разрешатьClickOnce управлять этим.Когда вы измените этот файл, ClickOnce опубликует его снова и поместит в каталог данных.Затем он возьмет предыдущий и поместит его в подпапку \ pre, и если у вас нет кода для обработки этого, ваш пользователь потеряет свои данные.Поэтому, если вы откроете файл базы данных, чтобы посмотреть на структуру таблицы, вы можете быть неприятно удивлены, когда вам позвонят по телефону и узнают, что данные пропали.
Если вам нужно сохранить данные между обновлениями, я рекомендую переместить базу данных в папку [LocalApplicationData] при первом запуске приложения и сослаться на нее там.Затем, если вам необходимо выполнить какие-либо обновления в структуре, вы можете сделать это программно и контролировать, когда они происходят. Эта статья объясняет, как это сделать и почему.
Другое преимущество размещения данных в LocalApplicationData заключается в том, что если у пользователя возникла проблема и ему необходимо удалить и переустановить приложение, его данные сохраняются.