连接字符串中的数据源 - 安装项目

时间:2013-02-25 00:35:32

标签: c#

我正在为我的C#桌面应用程序创建一个安装项目。 应该在访问数据库的连接字符串中写入什么数据源?我应该将我的数据库文件放在解决方案项目中?

1 个答案:

答案 0 :(得分:0)

假设您正在使用VS安装项目,则需要将访问数据库文件添加为内容,并将其放置在应用程序目录中。要在配置文件中指定位置,您需要编写一个相应修改连接字符串的自定义操作。 以下示例是一个安装程序类,它在安装阶段(未测试)之后设置连接字符串:

[RunInstaller(true)]
public partial class Installer1 : System.Configuration.Install.Installer
{
    public Installer1()
    {
        InitializeComponent();
        this.AfterInstall += new InstallEventHandler(Installer1_AfterInstall);
    }

    void Installer1_AfterInstall(object sender, InstallEventArgs e)
    {
        string sTargetDir = Context.Parameters["TargetDir"];
        string sAppConfig = Path.Combine(sTargetDir, "<your app>.exe.config");
        string sDBPath = Path.Combine(sTargetDir, "<your db>.mdb");
        XDocument doc = XDocument.Load(sAppConfig);
        var elem = doc.Root.Element("/configuration/connectionStrings/add[@name='<your connection name>']");
        string connectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", sDBPath);
        elem.SetAttributeValue("connectionString", connectionString);
        doc.Save(sAppConfig);
   }
}

或者,您可以使用在XmlFile扩展程序中具有util实用程序的Wix实用程序,无需您编写自定义操作。