Winアプリ(VB.NET2003)のVista対応

解決


Oyakata  2007-07-02 22:39:23  No: 143715

(WinXP,VB.NET2003)

お世話になります。

このたび1年ほど前に顧客先へリリースしたWinアプリを
近々Vista対応にするという作業を引き継ぐ事になったのですが
現状はまだ上記環境のPCが2台あるのみでテスト環境(Vista機)が
手近にないため、事前に少しでもVista対応に関する情報収集が
できればと思い書込みさせていただきました。

情報収集は始めたばかりなのですが、当面の問題としてはVista機には
VB.NET2003の開発環境を持っていけない(サポートしてない?)となると
Vista機でテスト → XP機で不具合修正 → Vista機でテスト・・・
といった感じで作業するしかないのかなと…

それと以前1度だけですがリリース済みのセットアップCDを使用して
試しにVista機にアプリをインストールした事があったそうなんですが
起動時点でエラーになったそうです。こちらも調べ始めたばかりなんですが
どうやらMutexクラスが悪いのかなと…(間違いでしたらすいません)

If wMutex.WaitOne(0, False) = False Then
    ' 二重起動チェック
    MessageBox.Show("同じアプリケーションがすでに起動しています。")
    以下略

確認したところ、今はSub Mainで上のようなチェックをかけています。
Mutexクラスを使わないとして代用できるチェック法はあるでしょうか?

回答に困る質問の仕方かもしれませんが、上記(Mutex)を含め他にも
何か他クラスの参考情報や見ておいた方がよいサイトなど
ありましたら教えていただければ幸いです。よろしくお願いします。


オショウ  2007-07-04 18:57:57  No: 143716

Vista上での開発やっている人、まだ少ないようですので・・・

私もMutex使ってますが、問題はありませんでした。
ただし、VistaでとなるとやはりVS.NET 2005 に上げて開発や
デバッグした方がより安全だと思います。

VS.NET 2003 のコードが、WinXPで問題なく動作シテモVistaでは
セキュリティーの関係で管理者権限が必要な場合に管理者権限
への移行を問うダイアログボックスが表示されたり、もしくは
エラー(アクセス不可とか)となってしまい、それをWinXPとの
往復でエラーを確定し回避策を講じるのは無理かと。

尚、二重起動の件ですが、VS.NET 2005 の場合、プロジェクトの
プロパティで、アプリケーションフレームワークを有効にする。
を選択し、単一インスタンスのアプリケーションを作成する。
にチェックすれば、必ず起動したプログラム1本しか動作しなく
なりますので、二重起動のチェックは不必要になります。

VS.NET => 2005 で機能拡張も為されておりますので、移行した
方がそれら恩恵の方が大きいように思います。

参考までに。
以上。


Oyakata  2007-07-04 23:52:36  No: 143717

オショウさん回答ありがとうございます。

>それをWinXPとの
>往復でエラーを確定し回避策を講じるのは無理かと。

>VS.NET => 2005 で機能拡張も為されておりますので、移行した
>方がそれら恩恵の方が大きいように思います。

やはりそうですよね。私も同感です。
# 一応進言だけはしてみましたが・・・どうなることか^^;

現状としては当面は現開発環境に対してテスト機として
Vista機が1台やってくるだけの予定で「往復で回避策を…」の
作業になってしまいそうで、作業前から不安になっています。

ちなみにVB.NET2003⇒2005への移行作業というのは比較的スムーズに行えるものなのでしょうか?
私の場合1〜2年前にVB.NET2003から始めたもので
「移行」という事自体が未体験でして…(加えてVB2005も未体験です。)
VB2005で現在のプロジェクト(ソリューション?)を読込ませて
ビルドエラーとなる箇所をコツコツ "微修正" いったイメージでしょうか?
それともほとんど "作り直し" といった感じでしょうか?
# もちろんプロジェクト(アプリ)の規模による所もあるとは思いますが


魔界の仮面弁士  2007-07-05 00:27:45  No: 143718

>>VS.NET => 2005 で機能拡張も為されておりますので、移行した
>>方がそれら恩恵の方が大きいように思います。
ちなみに、来年前半(?)には、コードネーム "Orcas" と呼ばれていた
Visual Studio 2008 (Visual Basic 9.0) が登場するようですね。

http://www.microsoft.com/japan/msdn/vstudio/future/
http://homepage1.nifty.com/rucio/main/VB9Pre/VB9Pre1.htm

# そのあとには、コードネーム "Rosario" も控えているようですが。

2005 に慣れてしまうと、2003 には戻りたくなくなります。(^^;
特に、実行中にコードを直接修正できる(Edit & Continue)点が便利。

> ちなみにVB.NET2003⇒2005への移行作業というのは比較的スムーズに行えるものなのでしょうか?
.NET Framework のバージョンが、1.1 ではなく 2.0 になりますので、
運用側の移行作業には、若干の注意が必要です。

.NET 2.0 が 最初からインストール済みの環境では苦労せずに済みますが、そのランタイムが
未インストールで、かつ、利用者が管理者権限を有していないような運用環境では、
ランタイムの配布方法も考慮する必要があるかも知れません。

一方で、開発面での移行作業は、比較的容易だと思います。
もちろん、細かな違いはありますが、修正箇所はさほどありませんでした。
# 少なくとも、当方環境においては。

開発環境の混在(同時インストール)は許されますので、2003 と 2005 を同時に起動して、
両者の違いを見ながら移行作業を進めていくような使い方もできます。

ちなみに、2003 をインストールした後で 2005 をインストールすると、
2003 製の *.sln ファイルは、アイコン右上に[7.1]と表示され、
2005 製の *.sln ファイルは、アイコン右上に[8]と表示されます。

それぞれ、ダブルクリックすると適切なバージョンの Visual Studio が起動しますので、
混在環境でも、新旧両方のプロジェクトを管理しやすいつくりになっています。


Oyakata  2007-07-05 19:16:26  No: 143719

魔界の仮面弁士さん回答ありがとうございます。
イメージが涌きやすく、とても分かり易いご説明で助かります。

>.NET Framework のバージョンが、1.1 ではなく 2.0 になりますので、
>運用側の移行作業には、若干の注意が必要です。
リリース済みセットアップCDでは…
起動条件に.NET Framework 1.1 とMDAC(2.7以上だったかな?)を追加した
デプロイメントプロジェクトが作成されており、加えて実行環境の注意点
などを記載した資料を添えて各顧客先に配布していたようです。
# おそらく似たような感じでやっていくのかなと。

>一方で、開発面での移行作業は、比較的容易だと思います。
>もちろん、細かな違いはありますが、修正箇所はさほどありませんでした。
これは私にとってはかなり好印象ですね。さほど無いという修正箇所が
どんなものか気になりますが私レベルでも比較的容易である事を祈りたいです。

そうなると先のオショウさんの回答も含めて考えて
やはり現プロジェクトを2005に移行するというのが最も近道かつ安全で
「往復で回避策を…」がいかに非効率的な事かってことですね。
# 現実問題としては進言が通らなかった場合は後者になってしまいますが。

今しばらくは、まだ情報収集など色々と事前調査中ですので
引き続き何かお気づきの点などあればよろしくお願いします。


Oyakata  2007-07-09 20:33:50  No: 143720

魔界の仮面弁士さん、オショウさん、回答ありがとうございました。
事前調査の段階にも関わらず親切な説明で大変助かりました。

本日以降、何度か会議が予定されているので、お二方の助言をもとに
再度、2005への移行で対応するべきだと進言してみようと思います。

それでもなお「往復で回避策を…」の作業になってしまった場合は
別途質問する事もあるかと思いますが、その際にはまた助言頂ければと思います。

とりあえず"事前調査"としましては一旦解決とさせていただきます。
お世話になりました。


シャア専門。  2007-07-18 20:58:18  No: 143721

Oyakataさんへ

もう解決してしまったかもしれませんが、書込みさせていただきます。
当方の環境(WinXP,VC,VS2003)でVSの経験3ヶ月程度。

>それと以前1度だけですがリリース済みのセットアップCDを使用して
>試しにVista機にアプリをインストールした事があったそうなんですが
>起動時点でエラーになったそうです。

私も同様の問題に直面しております。
ただ、一応の回避方法として、
インストール後、ソフトを起動しないでOS再起動を行うと
正常にインストールができる可能性があります。
ですので、インストーラの.MSIをオルカでいじってあげる(再起動を促すように…)と多少の誤魔化しができるかもしれません。
ただ、自分も再起動をしないで済む方法については模索中ですが…。

少しでも参考になれば幸いです。


Oyakata  2007-07-20 00:41:13  No: 143722

シャア専門。さん、更なる情報ありがとうございます。
解決チェックを付けた後だったため気づくのが遅れてすいませんでした。

> もう解決してしまったかもしれませんが、
手違いでもあったのか、まだ手元にVista機も届いてなく
仕方なく別の仕事をこなしながら気長に待っている状態です。

> インストール後、ソフトを起動しないでOS再起動を行うと
> 正常にインストールができる可能性があります。
そうですか。以前インストールした際に、そのあたりの確認を行っていたかは不明なので
テスト(Vista)機が届いたら是非試してみたいと思います。

そうなると、インストール手順というか…設定というか…
少なくともMutexクラスについては、オショウさんが仰っていた
> 私もMutex使ってますが、問題はありませんでした。
が、やはり確かな情報なんでしょうね。

オルカ(Orca?)の方ですが、MSIファイルを直で編集できるヤツですよね?
これもまた未体験ですがインストーラの仕様の見直しも含めて検討できればと思います。

それと余談というか後日談になりますが
今私がいる部署用に新たにVS2005を用意(購入)してもらえそう?です
どれがいいか選ぶよう指示されてますが
現在の Visual Studio .net Enterprise Developer Version2003 に対し
今回は Visual Studio 2005 Professional with MSDN Premium Subscription
あたりが同程度のグレード(価格)なのかなと…
# この辺は無知でよく分からず悩んでます。もっと安いのでもいいのかな…


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加