トップ回答者
VS2010 ClockOnce で発行したらdbファイルが付いていなかった

質問
-
毎度お世話になっております。
プロジェクトを発行した後、プログラムを起動すると次のメッセージが表示されました。
プロジェクトを調べてみると、「mail.accdb」は、ソリューションエクスプローラーに表示されていて、「mail.accdb」のプロパティは
ビルドアクション : コンテンツ
出力ディレクトリー : 新しい場合はコピーする
となっていました。
発行の「アプリケーションファイル」は、次のようになっていました。
これを見る限り、「mail.accdb」があるので問題ないように見えます。
プログラムも、デバッグ/リリース モード共に問題なく動きます。
ファイルがパッケージされていないかと、調べてみると
\\......\bin\Release\app.publish\Application Files\hoge_ver.number\mail.accdb.deploy
とありましたので、問題ないかと思われます。
そうすると、何がいけなかったのでしょうか。
ご教示下さい。
よろしくお願いします。
回答
すべての返信
-
魔界の仮面弁士 様
いつもお世話になっております。
>「~\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