Что я хотел бы предложить (проще всего), так это добавить файл (я считаю, что база данных SQLLite) как существующий ресурс, щелкнуть по нему правой кнопкой мыши, перейти к свойствам и изменить действие сборки на «Содержимое», а затем «Копировать в выходной каталог» на «Копировать новее».
Отсюда у вас есть 2 варианта:
Если вы никогда не будете изменять исходный файл SQL при обновлении, вы можете оставить его как есть, но если вы хотите вносить изменения время от времени, я бы предложил следующее:
String appPath = Path.GetDirectoryName(Application.ExecutablePath);
if (!System.IO.File.Exists(appPath + @"\Resources\SQLLite.db"))
{
System.IO.File.Copy(appPath + @"\Resources\SQLLiteIncluded.db", appPath + @"\Resources\SQLLite.db");
}
При необходимости вы можете скопировать в папку данных приложения текущего пользователя, если программа не будет иметь права на запись по своему пути к исполняемому файлу (в большинстве случаев это так)
\ Resources \ - это папка, которую я создал в своем проекте (которая копируется в путь к исполняемому файлу, если в нем есть файлы с содержимым), поэтому я включил ее в пути. (Это необязательно)
Что касается административных прав, мне не нужно никаких административных прав для этого в нашей сети, но мы развертываем через сетевой диск, а не через веб-сайт, но я бы предположил, что это будет то же самое.