none
VS2010 ClockOnce で発行したらdbファイルが付いていなかった RRS feed

  • 質問

  • 毎度お世話になっております。

    プロジェクトを発行した後、プログラムを起動すると次のメッセージが表示されました。

    プロジェクトを調べてみると、「mail.accdb」は、ソリューションエクスプローラーに表示されていて、「mail.accdb」のプロパティは

    ビルドアクション : コンテンツ

    出力ディレクトリー : 新しい場合はコピーする

    となっていました。


    発行の「アプリケーションファイル」は、次のようになっていました。

    これを見る限り、「mail.accdb」があるので問題ないように見えます。

    プログラムも、デバッグ/リリース モード共に問題なく動きます。

    ファイルがパッケージされていないかと、調べてみると

    \\......\bin\Release\app.publish\Application Files\hoge_ver.number\mail.accdb.deploy

    とありましたので、問題ないかと思われます。

    そうすると、何がいけなかったのでしょうか。

    ご教示下さい。

    よろしくお願いします。

    2013年5月12日 4:24

回答

  • > VS2010 ClickOnce で発行したらdbファイルが付いていなかった

    エラーメッセージを見ると、「~\Data\mail.accdb」になっていますね。

    「~\Data\mail.accdb」ではなく「~\mail.accdb」に配置されてはいないでしょうか。インストールされたフォルダーの内容を確認してみてください。

    2013年5月12日 7:31

すべての返信

  • > VS2010 ClickOnce で発行したらdbファイルが付いていなかった

    エラーメッセージを見ると、「~\Data\mail.accdb」になっていますね。

    「~\Data\mail.accdb」ではなく「~\mail.accdb」に配置されてはいないでしょうか。インストールされたフォルダーの内容を確認してみてください。

    2013年5月12日 7:31
  • 魔界の仮面弁士 様

    いつもお世話になっております。

    >「~\Data\mail.accdb」ではなく「~\mail.accdb」に配置されてはいないでしょうか。インストールされたフォルダーの内容を確認してみてください。

    確かに、「~\Data\mail.accdb」の中身は、空になっていました。「~\mail.accdb」は、exeファイルと同じ場所にありました。

    ソースコードを見てみますと、「"Data Source=|DataDirectory|\mail.accdb;"」としてありますのでこれが悪さしているのでしょうか。

    Webで調べてみると、似たような現象の記事がありました。

    記事を抜粋すると、↓このようにソースコードで分けてありました。

        if (ApplicationDeployment.IsNetworkDeployed)
        {
        dir = ApplicationDeployment.CurrentDeployment.DataDirectory + "\\";
        }
        else
        {
        dir = "";
        }
    
        PATH + dir + DATABASE_FILENAME;
    これで動かしてみましたが、やはり、結果は同じでした。

    エラーメッセージのホルダーにデータベースのファイルを置くことにします。

    • 編集済み taokato 2013年5月12日 14:47
    2013年5月12日 8:08
  • mail.accdb の 発行の状況 を、「 含む(自動) 」から「 データ ファイル 」に変更出来ませんか?

    ここに設定された場所に配置されます。

    2013年5月14日 1:21