C# winform 同一方案下,不同项目间怎么相互调用 项目路径?
上图是我一个方案里的两个项目,项目Tcpserver的Application.StartPath里有我建的一个数据库sldb.accdb。现在我想在另一个项目里调用这个数...
上图是我一个方案里的两个项目,项目Tcp server的Application.StartPath里有我建的一个数据库sldb.accdb。
现在我想在另一个项目里调用这个数据库,调用这个数据库的第一步要做的就是要找到这个数据库的路径,但是数据库的路径是一个很棘手的问题。
如果我设置绝对路径,那么整个文件就不能随意移动了,比如说从D盘移动到E盘等等。
我尝试过在项目Tcp server里构建一个函数 使用 sting dbaddr = Application.StartPath,return dbaddr。然后在另外一个项目里调用,但是没有成功,返回值总是另外一个函数的路径,不是项目Tcp server的。
现向大家求助,如有好办法的朋友们,不吝赐教!
项目Tcp server 使用wpf做的,另外一个项目是用 winform做的。
如果有必要我可以将项目Tcp server 用winform再做一遍,只要能够获取相对路径就好了! 展开
现在我想在另一个项目里调用这个数据库,调用这个数据库的第一步要做的就是要找到这个数据库的路径,但是数据库的路径是一个很棘手的问题。
如果我设置绝对路径,那么整个文件就不能随意移动了,比如说从D盘移动到E盘等等。
我尝试过在项目Tcp server里构建一个函数 使用 sting dbaddr = Application.StartPath,return dbaddr。然后在另外一个项目里调用,但是没有成功,返回值总是另外一个函数的路径,不是项目Tcp server的。
现向大家求助,如有好办法的朋友们,不吝赐教!
项目Tcp server 使用wpf做的,另外一个项目是用 winform做的。
如果有必要我可以将项目Tcp server 用winform再做一遍,只要能够获取相对路径就好了! 展开
1个回答
展开全部
其实你的问题应该归于一个问题:正式发布后,你这两个项目的目录关系是什么,是在一起还是随便分开的,如果两个项目本身没什么关系,那最简单的方法就是比如你Tcp server启动的时候,把启动路径下的accdb的绝对路径写入注册表一个固定位置。之后winform启动时,从这个注册表读就行了(如果注册表没数据就那提示先运行tcp server)
注1:地图一般不建议用google地图,现在基本用不成,建议换其它的地图API,比如百度。
注2:你这是一个C/S架构吧,如果不是单纯的演示版本建议换其它数据库服务,比如mssql或mysql,这样winform直接从数据库读就行了。
注1:地图一般不建议用google地图,现在基本用不成,建议换其它的地图API,比如百度。
注2:你这是一个C/S架构吧,如果不是单纯的演示版本建议换其它数据库服务,比如mssql或mysql,这样winform直接从数据库读就行了。
追问
两个项目的关系:Tcp server启动监听并接受坐标,之后有一个按钮,唤起项目Tracking on Google map 并在地图上显示坐标。
MySQL,因为是初学者还不会怎么用,暂且用了Access。
不过谢谢你的回答,我已经找到一个解决办法,就是讲两个项目的output,在属性里设定到同一个文件夹里。
至于写入注册表的方法,我还不怎么懂,如果可能的话,能否贴上一个代码我回去研究研究,谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询