0

C# デスクトップ アプリケーションのセットアップ プロジェクトを作成しています。Access データベースの接続文字列にはどのデータ ソースを記述すればよいでしょうか?また、ソリューション プロジェクトのどこにデータベース ファイルを配置すればよいでしょうか?

4

1 に答える 1

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);
   }
}

または、カスタム アクションを記述せずに、拡張機能にユーティリティが含まれWixている which を使用することもできます。XmlFileutil

于 2013-02-25T01:16:50.420 に答える