如何为C#

时间:2015-10-06 20:13:52

标签: c# ms-access installer special-folders

我有一个C#项目,我已经通过.mdb选项添加了一个Access文件(New Data Source)。

所以它的副本总是在我的项目文件夹中。现在我的连接字符串使用该路径( C:\ Users \ PC \ Visual Studio \ Projects .... )。如果我将项目移动到另一个目录或机器,我必须手动更改路径。但如果我将应用程序设为可安装,则可能无法实现。

如何建立相对于项目的数据库路径?

2 个答案:

答案 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以供参考。