1 回答
TA贡献1993条经验 获得超5个赞
SQLite.Interop.dll:该文件
SQLite.Interop.dll
需要与其他运行时文件一起安装,以便 SQLite 正常运行。
x86
文件和x64
格式有两种风格。可能建议将这两个文件安装在各自的文件夹中:您的安装文件夹层次结构 - 模型:
YourBinary.exe
x86\SQLite.Interop.dll
x64\SQLite.Interop.dll
System.Data.SQLite.dll
Etc...
读写数据库位置:然后您的数据库应存储在可写路径中(或者您需要使用自定义 ACL 权限使普通用户可写路径 - 这绝不是一个好主意)。
例外:显然
try - catch
你的数据库连接、更新和访问代码来检测这些类型的问题。
文件夹混淆:数据库文件夹内是否有数据库文件?看起来
inventory_control.db
文件安装到主应用程序文件夹,而不是数据库子文件夹?也许该文件是由
application.exe
错误的文件夹中生成的?或者您可能出于测试目的复制了主文件夹中的文件?
硬编码的 Dev-Box 原罪?: 里面写了什么
Inventory Control.exe.config
?那里是否有相关设置可以覆盖您的代码值?
那里可能有硬编码的开发箱罪过吗?
路径生成器:我假设您在启动期间已将应用程序的路径“装箱”,以确保它们是正确的?我喜欢复制路径并执行
Start => Run
并粘贴路径以查看它是否打开。CTRL + C
当消息框显示时按下粘贴到记事本中。提取路径并在Start => Run
.string path = currentPath.Substring(0, currentPath.Length - 21);
. 硬编码文件名中的字符数来获取父目录路径不是很健壮吗?你可以通过使用来改进它
Path.GetDirectoryName(currentPath)
吗?甚至可能:
string dir = currentPath.Substring(0,currentPath.LastIndexOf('\\'));
附加调试器和调试二进制文件?:也许您可以安装调试二进制文件并附加到它们以进行调试,如下所述: wix c# app doesn't launch after installed . 只是为了获得真正的逐步调试会话。
Path Spaces:数据库连接字符串。它的路径是否需要引号?如“带空格的路径”?您的 Visual Studio 项目的路径中可能没有任何空格,但安装时路径中有空格。
你的源代码中的这个结构看起来很奇怪,为什么有必要?:
<?define Inventory Control_TargetDir=$(var.Inventory Control.TargetDir)?>
- 1 回答
- 0 关注
- 208 浏览
添加回答
举报