我正在尝试使用sqlite3.exe命令行工具设置自定义操作来初始化我的SQLite数据库。在命令提示符中,我键入以下内容:c:\sqlite3.exe database.db < sqlscript.sql
My Wix自定义操作在ExeCommand属性中崩溃,因为我似乎无法逃脱&lt;。
<CustomAction Id="InitializeDatabase" FileKey="SQLiteEXE" ExeCommand="database.db < sqlscript.sql" Execute.../>
我也试过“&amp; lt”。
我知道我可以安装一个空的initiailzed数据库,但我很好奇如何重定向输入。
感谢。
答案 0 :(得分:1)
那么,当你说它崩溃时究竟发生了什么?它编译?
只是为了让我们在同一页面上,您是否使用分号结束XML实体。你可能是,但它没有通过你的代码示例。你在用:
<
如果这不起作用,您可以尝试将命令放入属性并使用CDATA标记,例如:
<Property Id="MyCommand">
<![CDATA[
database.db < sqlscript.sql
]]>
</Property>
并在ExeCommand属性中使用它:
ExeCommand="[MyCommand]"
这可能有效。
答案 1 :(得分:0)
如果你真的需要拨打EXE,我建议使用WiX QuietExec自定义动作模式。更糟糕的情况是您可以安装.BAT文件,然后使用cmd / c foo.bat命令来调用它。那么你就不必逃避&lt;。
否则我会搜索EXE的替代方案。我尝试坚持使用在进程中运行的数据驱动的自定义操作(比如C ++或C#/ DTF)。