clickonceを使用して配布を考えているのですが、一部問題が発生して解決できないでおります。
問題とは、初期インストール時は問題ないのですが、バージョンアップで自動的にプログラムをインストール
する場合、データベースが上書きされてしまうということです。
データが消えるというのは運用上非常にまずいです。
ということで、データベース構造に変更がなければ上書きしないというような設定はできないのでしょうか。
バージョンアップ時にSDFファイルを含めないということも試しました。
これは既にインストールしている場合は、問題ないのですが、
最新のバージョンで初期インストールすると、sdfが含まれない状態となりエラーとなってしまいます。
バージョンを指定した初期インストールが可能で、その後最新にバージョンアップことができないか
調べましたが結局わからずじまいです。
msdnにも特にこのことに関する記事を見つけることができませんでした。
http://msdn.microsoft.com/ja-jp/library/aa983326.aspx
なにかうまい方法をご存知の方ご回答をよろしくお願いします。
とても気になって調べてみたのですが、*.sdf ではなく、*.txt で実験したところ、
データディレクトリに格納されたファイルは、上書きされませんでした。
私の環境は Visual Studio 2005 + Windows 2000 SP4 ですが...
アプリケーションを実行すると、アプリケーションは正常に更新された。
データファイルを確認すると、2) で直接編集した内容が維持されていた。
データファイルは、次のように 2 つのディレクトリに格納される(X,Y,Zの部分は省略)。
C:\Documents and Settings\administrator\Local Settings\Apps\2.0\Data\XXX\YYY\ZZZ01\Data
C:\Documents and Settings\administrator\Local Settings\Apps\2.0\Data\XXX\YYY\ZZZ02\Data
これは、ClickOnce の仕様でバージョンアップする前に戻すことが出来るようにするため。
2) でこのディレクトリに格納されたファイルを編集して、4) でバージョンアップすると
2) で編集したファイルがコピーされる。
...あれ、これって、期待されている動作なのでは...
設定状況のスクリーンショット
http://f.hatena.ne.jp/tsukasa57/20090123023447
http://f.hatena.ne.jp/tsukasa57/20090123023446
できれば「この質問・回答へのコメント」欄でコメントを受け付けるようにして欲しいです。
興味があったのでちょっと調べてみたのですが
http://msdn.microsoft.com/ja-jp/library/aa983326.aspx
によると、「SQL Server Compact 3.5 データベースを含んだアプリケーションの ClickOnce 配置に Windows インストーラ テクノロジを使用するには」という節の中で、
[アプリケーション ファイル] をクリックし、.sdf ファイルを [データ ファイル (自動)] に設定します。
これは、.sdf ファイルをローカル データ ファイルとして扱い、データ ディレクトリに格納するようインストーラに伝えるための設定です。
とありますが、これは試されましたか?
私は ClickOnce を扱ったことありますが SQL Server Compact 3.5 は使用したこと無いし、試してもないのですが、参考になりましたら幸いです。
ご回答ありがとうございます。
[データ ファイル (自動)]を、選んで発行しています。
で、データディレクトリにアプリとは別に格納されるのは確認しています。
なんか思ったとおりの動きをしてくれません(泣)
とても気になって調べてみたのですが、*.sdf ではなく、*.txt で実験したところ、
データディレクトリに格納されたファイルは、上書きされませんでした。
私の環境は Visual Studio 2005 + Windows 2000 SP4 ですが...
アプリケーションを実行すると、アプリケーションは正常に更新された。
データファイルを確認すると、2) で直接編集した内容が維持されていた。
データファイルは、次のように 2 つのディレクトリに格納される(X,Y,Zの部分は省略)。
C:\Documents and Settings\administrator\Local Settings\Apps\2.0\Data\XXX\YYY\ZZZ01\Data
C:\Documents and Settings\administrator\Local Settings\Apps\2.0\Data\XXX\YYY\ZZZ02\Data
これは、ClickOnce の仕様でバージョンアップする前に戻すことが出来るようにするため。
2) でこのディレクトリに格納されたファイルを編集して、4) でバージョンアップすると
2) で編集したファイルがコピーされる。
...あれ、これって、期待されている動作なのでは...
設定状況のスクリーンショット
http://f.hatena.ne.jp/tsukasa57/20090123023447
http://f.hatena.ne.jp/tsukasa57/20090123023446
できれば「この質問・回答へのコメント」欄でコメントを受け付けるようにして欲しいです。
同じような感じで確認してみました。
※DBを直接編集ではなくアプリで追加変更しています。
バージョンアップしたときに、直前バージョンのDBファイルはコピーされませんでした。
Ver1.0.0.38での状態
http://f.hatena.ne.jp/kappapa/20090125051146
バージョンアップにて1.0.0.39に
http://f.hatena.ne.jp/kappapa/20090125051144
発行の設定状況
http://f.hatena.ne.jp/kappapa/20090125051145
発行したファイル群
http://f.hatena.ne.jp/kappapa/20090125051143
発行状況に違いがあるようなので、[データ ファイル (自動)]から[データ ファイル ]
へ変更して発行してみたところ、うまくコピーできました。(期待している動作)
ありがとうございました。
以前に、発行の状況を色々変更して試してみたつもりなんですが。
とりあえず、これでしばらく様子をみてみます。
あと、[データ ファイル (自動)]と[データ ファイル ]の違いは、なにか現在調査中です。
同じような感じで確認してみました。
※DBを直接編集ではなくアプリで追加変更しています。
バージョンアップしたときに、直前バージョンのDBファイルはコピーされませんでした。
Ver1.0.0.38での状態
http://f.hatena.ne.jp/kappapa/20090125051146
バージョンアップにて1.0.0.39に
http://f.hatena.ne.jp/kappapa/20090125051144
発行の設定状況
http://f.hatena.ne.jp/kappapa/20090125051145
発行したファイル群
http://f.hatena.ne.jp/kappapa/20090125051143
発行状況に違いがあるようなので、[データ ファイル (自動)]から[データ ファイル ]
へ変更して発行してみたところ、うまくコピーできました。(期待している動作)
ありがとうございました。
以前に、発行の状況を色々変更して試してみたつもりなんですが。
とりあえず、これでしばらく様子をみてみます。
あと、[データ ファイル (自動)]と[データ ファイル ]の違いは、なにか現在調査中です。