我在2005年视觉演播室用了C#、Casical ProjectactiveRecord和Kingk数据库(使用Kallite连接器)撰写了独立的Windows表格。
出版的应用软件(双版)在窗口和窗口7台计算机上运行,但当复制到Windows XP计算机时,申请在运行时会发现一处错误:
“...... FindByPrimaryKey for [tablename] Id: 422”
最奇怪的是,ID 422确实存在,表格和数据库也是如此(没有发现不一致之处)。
其他细节:
- The windows xp sp3 system has all the libraries / frameworks installed
- The application does start normally on the xp machine
- If the application is being run in visual studio on the XP machine, the program runs just fine without any problems. But running it outside of visual studio (same binary), gives the error again.
- No problems on Vista & W7
- I am using the latest SQLite connector (http://sourceforge.net/projects/sqlite-dotnet2/)
- When I copy the SQLite database file from the XP machine to Vista or W7, the application on those systems reads it without problem
- The error is not showing up at all the other database actions that took place before the errornous call
- Changing FindByPrimaryKey to FindAll will cause a similar error
我没有隐瞒可能给它造成的后果...... 任何想法?
<>Update:
Ok找到了问题(令人厌恶,但可能是因为我错过了:
在座标上,数据库所在地的界线是:
<add key="hibernate.connection.connection_string" value="Data Source=database.db;Version=3"/>
在XP,道路(数据来源)与任何其他档案行动途径有关,而Windowsista或Windows 7则总是与主要可执行的道路有关。
因此,不同的问题,但同样的问题:
我如何界定数据库的道路,以便总是向同一地点指明? (例如:与可执行目录和没有绝对途径的理论目录)
<><>Update 2
Ok got,摘自正式城堡项目文件: