【发布时间】:2018-11-05 23:17:28
【问题描述】:
我正在尝试创建一个安装包,它将为我的 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 命令没有被执行。
【问题讨论】:
标签: sql-server uwp nsis sqlcmd