我有一个C#项目,我已经通过.mdb
选项添加了一个Access文件(New Data Source
)。
所以它的副本总是在我的项目文件夹中。现在我的连接字符串使用该路径( C:\ Users \ PC \ Visual Studio \ Projects .... )。如果我将项目移动到另一个目录或机器,我必须手动更改路径。但如果我将应用程序设为可安装,则可能无法实现。
如何建立相对于项目的数据库路径?
答案 0 :(得分:1)
配置安装程序时,指定.mdb
文件将转到的文件夹。您可以选择将其放在与应用程序的.exe
文件相同的文件夹中,或者放在AppData
下的应用程序文件夹中,或者放在用户的主文件夹中,或者您喜欢的任何其他位置。就像您将此指定给安装程序一样,您可以使用Environment.SpecialFolder
枚举在代码中指定它。
问题是在开发过程中,您的.mdb
文件通常位于项目文件夹的根目录中,与上述任何内容都不一致。
我所做的是首先,在项目选项中,我确保当我的应用程序在开发期间启动时,它始终在我的项目的根文件夹中启动,而不是在./bin/Debug
文件夹中。
然后,每次我的应用程序启动时,我都会检查我的.mdb
文件是否在应用程序的当前目录中,如果是,那么这必须是开发运行,所以我使用它。
否则,这必须是部署运行,因此我使用SpecialFolder
枚举来获取安装程序应该放置.mdb
文件的文件夹。
答案 1 :(得分:1)
我建议使用:System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
您可以看到此question以供参考。