Я пытаюсь создать установочный пакет, который создаст локальную базу данных для моего UWP.В настоящее время я использую NSIS для создания пакета.
Я разработал свой UWP с идеей, что некоторые пользователи могут время от времени использовать планшет или телефон, но приложение будетв основном для настольных компьютеров, а мой установщик предназначен для настольных систем.
Сначала я попытался использовать SQLLocalDB Utility , но обнаружил, что он не поддерживается в UWP.В конце концов я начал использовать медиа-файлы SQL Server для установки SQL Server Express, и я думаю, что именно так я и хочу (я хочу локальную базу данных, которая немного более надежна, чем SQLite, и, похоже, это мой лучший вариант).
Я не знаю, связана ли моя текущая проблема с NSIS или SQLCMD (который я использую в установщике для создания базы данных).Вот часть моего .nsi, которую я использую для создания базы данных:
OutFile "db_installer.exe"
!include psexec.nsh
!include LogicLib.nsh
Section
InitPluginsDir
SetOutPath $PLUGINSDIR
File /r SQLCMD
ExecWait '"$PLUGINSDIR\SQLCMD\sqlcmd.exe" -S Cmp-000000\SQLEXPRESS -i createdbonfile.sql -o output.txt'
FileOpen $4 "$PLUGINSDIR\SQLCMD\output.txt" r
FileSeek $4 0
ClearErrors
${DoUntil} ${Errors}
FileRead $4 $1
DetailPrint $1
${LoopUntil} 1 = 0
FileClose $4
# default section end
SectionEnd
В какой-то момент я получил программу установки, которая хотя бы печатала ошибки SQL.С тех пор я думал, что только удалил некоторые вызовы "DetailPrint".Однако теперь SQLCMD по-прежнему создает выходной файл, но ничего не помещает в него.И, конечно, самая большая проблема заключается в том, что мои команды SQL не выполняются.