tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルアプリのバージョンアップについて
記事No11815
投稿日: 2017/03/31(Fri) 17:18
投稿者SUZUKI
いつもお世話になっております
配布したVB2005アプリの起動に失敗し困っております

全てのプログラム欄から起動してもらっていますが
本体(例 ABC.exe)と関連ファイルを送り
上書きコピーしてもらいました

それで起動してもらったらなぜかインストールが始まり

”WindowsにABCを設定しています。しばらくお待ちください”
"ABC.msiが見つかりません"
"インストール中に致命的なエラーが発生しました”

という事で終わってしまいました
C:\Program Files\ABC\ABC.exeを直接ダブルクリックをすると
正常に動きました


1.この現象の対処方法ですが
  インストールCD等を送り再インストールしなければ
  いけないのでしょうか?

  現実問題としてアプリのアンインストールと最新版のインストールを
  してもらったら正常に動きました

    バージョンアップのだびにアンインストールと再インストールではつらい

2.アプリのバージョンアップの方法として
  本体(ABC.exe)等を送って上書きコピーしてもらうというのは
  正しいバージョンアップの方法なのか?


  不思議と思ったのは全てのプログラムのプロパテイを
  見るとABC.exeがなくリンク先がABCとなっているだけです
  どこかで結びつけている何かが壊れたのかなと思ったのですが
  よくわかりません

以上
読みずらく申し訳ありませんが
よろしくお願いします

[ツリー表示へ]
タイトルRe: アプリのバージョンアップについて
記事No11816
投稿日: 2017/04/01(Sat) 21:48
投稿者YuO
最初のインストールは,インストーラーを使ったインストールなのですよね。
それであれば,バージョンアップはインストーラーを使う必要があります。

>     バージョンアップのだびにアンインストールと再インストールではつらい

バージョンアップに際して,
・.msiのバージョンを大きくする
・UpgradeCodeを変更しない
・ProductCodeを変更する
というMajorUpdateの手順に従えば,
新バージョンのインストーラーによって旧バージョンはアンインストールされます。


> 2.アプリのバージョンアップの方法として
>   本体(ABC.exe)等を送って上書きコピーしてもらうというのは
>   正しいバージョンアップの方法なのか?

インストーラーによってインストールされたのであれば正しくありません。
上書きコピーによるインストールを必要とするのであれば,
最初からインストーラーを使わない,という選択をする必要があります。

[ツリー表示へ]
タイトルRe^2: アプリのバージョンアップについて
記事No11817
投稿日: 2017/04/03(Mon) 09:33
投稿者SUZUKI
> バージョンアップに際して,
> ・.msiのバージョンを大きくする
> ・UpgradeCodeを変更しない
> ・ProductCodeを変更する
> というMajorUpdateの手順に従えば,
> 新バージョンのインストーラーによって旧バージョンはアンインストールされます。
>
YuOさん、回答ありがとうございます
インストーラーで配布したのはインストーラーでアップというのが
原則理解したのですが。。。。

参考にしたサイトは

http://www.balard.sakura.ne.jp/vb/dnet/makesetup.php

です

この中で
>・UpgradeCodeを変更しない
> ・ProductCodeを変更する
を見つけられずにいます
色々、探したのですがよくわからず
申し訳ありありませんがよろしくお願いします

[ツリー表示へ]
タイトルRe^3: アプリのバージョンアップについて
記事No11818
投稿日: 2017/04/05(Wed) 00:53
投稿者YuO
> この中で
> >・UpgradeCodeを変更しない
> > ・ProductCodeを変更する
> を見つけられずにいます

セットアッププロジェクトのバージョンだけを上げれば,ProductCodeを変更するかどうかのダイアログが出ると思いますが……。
参考にされているページは,アップデートには触れていないようです。
たとえば,dobonさんのページ
https://dobon.net/vb/dotnet/deployment/upgrades.html
などを参考にされてみてはどうでしょう。

[ツリー表示へ]
タイトルRe^4: アプリのバージョンアップについて
記事No11819
投稿日: 2017/04/05(Wed) 16:10
投稿者SUZUKI
> > この中で
> > >・UpgradeCodeを変更しない
> > > ・ProductCodeを変更する
> > を見つけられずにいます
>
SETUP配置プロジェクトのプロパテイの中に
ようやく見つける事が出来ました
しかし、UpgradeCodeもProductCodeも
暗号見たいに35桁もあり直せる値では無いようです

それで、YuOさんの指摘通りインストーラを当てた所
”修復と削除”が出て来て修復にチェックを入れると
エラーも無くなりアプリの交換もうまく行きました

バージョンアップもインストーラーでやって行く事
理解出来ました
ありがとうございました

[ツリー表示へ]
タイトルRe^5: アプリのバージョンアップについて
記事No11820
投稿日: 2017/04/06(Thu) 10:43
投稿者魔界の仮面弁士
> それで起動してもらったらなぜかインストールが始まり

インストールされたファイルの一部が変更された場合、破損とみなして
自動修復する機構があるためです。(修復には元のインストーラーが必要です)



> しかし、UpgradeCodeもProductCodeも
> 暗号見たいに35桁もあり

暗号というか乱数ですが、それは本当に35桁でしたか?

これらは、Version 4 の UUID が使われるので、
「38桁」の文字列になるはずなのです。
(実際には Version 4 以外の UUID 値も指定できますが)

この文字列は、下記の形式になっていると思います。大文字小文字は区別されません。
 {xxxxxxxx-xxxx-Yxxx-Zxxx-xxxxxxxxxxxx}
  x 部は 16進数(0〜9,A〜F)
  Y 部は '4' 固定
  Z 部は 8,9,A,B のいずれか


> 直せる値では無いようです

インストーラーを再作成する際に、これらのプロパティに
新しい値をセットすること自体は、さほど難しくはありません。

各プロパティの右端に表示される[...]ボタンから、
[プロダクト コード]ダイアログや [アップグレード コード]ダイアログを開き、
[新規コード(N)]ボタンを押すだけで、新しい値がセットされます。

また、そもそも Version プロパティを更新した場合には、
ProductCode を変更するかどうかの確認ダイアログが
表示されますので、そこで「はい」を選択しても書き換わります。

あるいは GuidGen.exe を使って生成することもできます。
このツールは [ツール]-[GUID の作成]メニューから呼び出せます。


なお、変更前には元の値も記録しておいたほうが良いでしょう。そうすれば、
「ProductCode を変更するつもりで、うっかり UpgradeCode を更新してしまった」
といったミスを起こしたときにも対処しやすくなります。

[ツリー表示へ]
タイトルRe^6: アプリのバージョンアップについて
記事No11821
投稿日: 2017/04/06(Thu) 13:39
投稿者SUZUKI
> > しかし、UpgradeCodeもProductCodeも
> > 暗号見たいに35桁もあり
>
> 暗号というか乱数ですが、それは本当に35桁でしたか?

再確認したら 38桁でした
申し訳ありませんでした


>
> また、そもそも Version プロパティを更新した場合には、
> ProductCode を変更するかどうかの確認ダイアログが
> 表示されますので、そこで「はい」を選択しても書き換わります。
>

変更したら、ProductCode確認ダイアログが出て来ました
そもそもインストーラはインストールの時だけと思っていましたので
Version 無視していました
これからいろいろ試したいと思います
ありがとうございました

[ツリー表示へ]