スポンサードリンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサードリンク



スポンサードリンク

VirtualStore

皆さんVirtualStoreって知ってます?

悩みました・・・

WindowsXPで動いていたあるフリーアプリ(例:hogehoge)があります。
こいつはダメアプリ(とは言いすぎですが)で、最初の起動時にc:\Program Files\hogehoge内にある自アプリフォルダのiniファイルを作成します。

Windows7にこのアプリをインストールして、起動、環境設定を変更して動かすと問題なく動きました。

ここでiniファイルが、いつもの通り作成されてるだろうと思いc:\Program Files\hogehogeディレクトリを参照すると、なぜかiniファイルが無い。

はて?

しかしアプリは環境設定が完了した振る舞いを見せている。 なぜ?!?!


ここで登場するのが「VirtualStore」です。 Windows7から実装された面倒くさいやつです。

どうやらセキュリティ上の仕様で、デフォルト設定では各ユーザが、本来共通で使用するはずのc:\Program Filesへの更新は許さないようです。
じゃあどうするかと言うと代わりに以下のディレクトリが更新されます。

c:\Program Files\hogehoge→C:Users\ユーザ名\AppData\Local\VirtualStore\Program Files\hogehogeといったリンクを張って

しかし、そんな事を言ってると、XP時代に作成された今回のようなhogehogeアプリが動かなくなるのも問題なので、Windows7が内部で勝手にc:\Program Files\hogehoge→C:Users\ユーザ名\AppData\Local\VirtualStore\Program Files\hogehogeといったリンクを張ってくれます。

一見、親切な仕様に見えなくも無いですが、アプリ上で指定してあるpathを見ても、それがそのpath上に無いといったことになり混乱の元になります。

更に悪いことに、別アプリから例えば今回のhogehogeアプリのiniが出来ることを前提に作られたアプリがc:\Program Files\hogehogeを参照していたりすると、Windows7が勝手に制御してくれるc:\Program Files\hogehoge→C:Users\ユーザ名\AppData\Local\VirtualStore\Program Files\hogehogeのリンクは有効にならず、ファイルが無いといったエラーになります。

結構、混乱してる人いるんじゃないのかな?

<対応方法>
一度、VirtualStore化されたアプリを戻す方法がわからなかったので、アンインストールしてからユーザーアカウント制御 (UAC; User Account Control)のレベルを一番下にして、再度、インストールすることで対応しました。

UACが無効であれば、Program Filesの更新もOKになるからです。

スポンサードリンク


コメントの投稿

非公開コメント

メールフォーム

ShoEngineer

Author:ShoEngineer

人気ブログランキングへ
↑↑クリックお願いします!

相互リンク歓迎(^_^)
以下からご連絡を!

名前:
メール:
本文:

スポンサード リンク
楽天
検索フォーム
Lc.ツリーカテゴリー
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。