VisualStudio StandardEditionを使っています。


 とあるプログラムをセットアッププロジェクトで作成し、インストールできるようにしました。

 ですが、今後バージョンアップした同じプログラムを配布する方法で悩んでいます。

現在作っているプログラムは
exeファイル
mdbファイル(データファイル)

という二つの要素から成り立っています。
また、インストール後に、プログラムのインストール先フォルダに
imgフォルダを作成し、そこに画像などを保存できるようにしています。

この状態で、新しいバージョンのセットアッププロジェクトを作ってインストールしようとすると、事前にuninstallが行われるため、ものの見事にデータファイルが消去され、まっさらのデータファイルになってしまいます。

アップデート用のセットアッププロジェクトからデータファイルを消してもやはり消去されます。


重複するファイルのみ上書き・・・みたいな設定は可能なのでしょうか?

InstallShieldを購入すれば可能なようですが、一番安いEditionでも私には高価で買えません。

何かいい方法があれば教えてください。 お願いします。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2007/08/26 19:50:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:europeo No.1

回答回数120ベストアンサー獲得回数8

ポイント35pt

データフォルダを、アプリケーションフォルダ以外の場所に作成すればいいのではないでしょうか?

たとえば

System.Environment.GetFolderPath(Environment.SpecialFolder.Personal)

で、ログイン中のユーザのマイドキュメントフォルダのパスが得られます。(.NetFramework2.0以降ではSystem.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

画像ファイルなら、マイピクチャフォルダ

System.Environment.GetFolderPath(Environment.SpecialFolder.MyPictures

の中にフォルダを作成してもいいかもしれません。

id:cast10

データフォルダを別フォルダにするというのはありだと思います。

早速取り入れていきます。ありがとうございます。

2007/08/19 23:18:11
id:tezcello No.2

回答回数460ベストアンサー獲得回数69

ポイント35pt

本体プログラム中で、データファイルが存在しない場合は、新規に作るとするのは邪道ですか?

データファイルを作るだけのプログラムを別途用意しておいて、本体プログラム中から呼んでやるとか、

まっさらなデータファイルはひな形として用意しておいて、(本体プログラム中で)コピーするとか。


バージョンアップ用と新規インストール用とを分けるのはどうでしょう?

バージョンアップ用は、ファイルの置き換えやデータの変換のみをするプログラムとするとか。

データ形式を変更しなければならない時や、デフォルトの変更とかの場合、有効だと思います。

id:cast10

ありがとうございます。参考になります。

バージョンアップ用と新規インストールは分けたほうがいいですよね。


一番いいのはmspファイルをもっと安価な方法で作れればいいんですけどね・・・

2007/08/19 23:18:14

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません