問題タブ [virtualstore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Windows レジストリのリダイレクトは「悪いこと」ですか?
私が作成したいくつかのアプリケーションをインストールするために使用する独自のインストーラー プログラムがあります。
これは「悪いこと」であると読んだので、アプリケーションのデータファイルの更新がユーザーのVirtualStoreに送られるのを避けるために、このプログラムを更新しています。XP の時代のように Program Files にすべてを保存するのではなく、プログラム ファイルと共通データ ファイルを適切な場所に別々に保存することでこれを行っています。
また、SHGetFolderPath (はい、非推奨ですが、まだ XP ユーザーをサポートする必要があります) を使用して、レジストリをトロールする代わりに既知のフォルダーを取得していますが、これは別の「悪いこと」です (読んだ)。
私が次にやろうとしていたことは、インストーラー コードを書き直して、HKLM に何かを書き込むときに Wow6432Node へのレジストリ リダイレクトを回避することでした。これは別の「悪いこと」だと思ったからです。
ただし、そこにあるアプリケーション固有のもの (ユーザーがデフォルト以外にインストールすることを決定した場合のインストール フォルダーなど) を配置することもできますが、キラーはアンインストール情報を HKLM\Software\Microsoft\Windows に配置する必要があることです。 \現在のバージョン\アンインストール. 64 ビット システムで実行されている 32 ビットのものの場合、これは Wow6432Node にリダイレクトされます。これを回避する方法はありません-実際に可能ですか?
installshield - アンインストール後にファイルを残してShieldをインストールする
C:\ProgramFilesに多数のファイルをインストールするInstallShield2009インストールを作成しました。Windows 7で実行している場合、インストールは完全に機能します。ただし、アンインストールが実行されると、ファイルはC:\ Program Filesから削除されますが、VirtualStoreから自動的に削除されることはありません。ファイルを手動で削除せずにこれを行う方法はありますか?
.net - Visual Studio デバッグ ビルド アプリケーションが削除されたファイルを開く
現在、.NET アプリで奇妙な状況が発生しています。Visual Studio (デバッグ ビルド) 内でアプリケーションを起動すると、.xml にある .xml ファイルが開き、読み込まれ C:\ProgramData\MyApp\Settings.config
ます。
唯一の問題は、このファイルが存在しないことです。すべての設定をクリアするために削除しましたが、アプリはまだそれをロードしています(私の古い設定)。リリースモードでは、設定がないことを正しく検出し、新しいファイルを作成します。しかし、それを削除してデバッガー内で再起動すると、以前のファイルが再度読み込まれます。
ロードしている行にブレークポイントを配置しました。ファイル名は明らかに上記のものです。フォルダー全体 ( C:\ProgramData\MyApp
) も削除しましたが、アプリはまだそれを読み込んでいます。ブレークポイントの正確な文字列を Windows エクスプローラーにコピーすると、そのようなファイルはないと表示されます。しかし、FileStream
が作成され、正しい長さで、XmlSerializer
完全に読み取られます。
Windows エクスプローラー (非表示およびシステム) ですべてのファイルを表示できます。フォルダーを削除しようとしました。また、NTFS ジャンクションなどもありません。
Visual Studio はどこからこのファイルを読み込んでいますか?
[編集]
以下の @MichaelBurr のコメントのおかげで、(Process Monitor を使用して) ファイルが から読み取られていることがわかりましたC:\Users\MyAccount\AppData\Local\VirtualStore\ProgramData\MyApp\Settings.config
。この「リダイレクト」は、デバッグ モードでのみ発生します (その特定のファイルに対して、作成したばかりの新しいテスト コンソール アプリでも)。
なぜこれが起こっているのか誰でも説明できますか?
[編集2]
これが役立つかどうかはわかりませんが、ある時点で、WiX インストーラーを使用して、このアプリのリリース バージョンをマシンにインストールおよびアンインストールしました。その時点で Visual Studio も実行されていた場合、独自の目的でこのフォルダーの「仮想コピー」を作成することを決定した可能性はありますか?
はいの場合、絶対パスを再度使用するにはどうすればよいですか?
c# - Windows VirtualStore へのファイルのリダイレクトを検出する方法は?
Win Vista のリリース以降、Microsoft は 32 ビット プロセスとして実行されるレガシー アプリケーションのファイル仮想化を導入しました。Microsoft のユーザー アカウント制御 (UAC) の一部としてリリースされた、オペレーティング システムによって保護されていると見なされる場所に書き込みを試みるレガシー アプリケーションは、VirtualStore にリダイレクトされます。
この時点で、問題のアプリケーションが UAC 対応の 64 ビット プロセスとして実行されるようにするための手順が実行されましたが、仮想化から安全と見なされる場所にユーザー データを移行するという問題にはほとんど対処できません。
この問題のトラブルシューティング中に、複数のユーザー アカウントを処理しているときに、 にあるレガシー パス内でいくつかの変更が行われているC:\Program Files(x86)\MyApp\Data
と同時に、 にある VirtualStore に変更が加えられていることがわかりました%localappdata%\VirtualStore\Programs\MyApp\Data
。問題は、ファイル/フォルダーの仮想化が行われているかどうかをどのように検出し、2 つの場所をどのようにマージできるかということです。
編集:問題とその複製方法を詳しく説明しているいくつかのWebサイトを見つけましたが、修正方法を含むものはありません. 有望と思われるファイル属性を定義するこの参照FILE_ATTRIBUTE_VIRTUALを見つけました - どこか思い出せませんが、別の参照を見つけました。リダイレクトのリクエスト。
これらのリンクは問題を説明しています:
http://www.c-sharpcorner.com/uploadfile/GemingLeader/windows-file-and-registry-virtualization/
http://www.codeproject.com/Articles/66275/Windows-Vista-File-and-Registry-Virtualization
windows - ファイルを App Data フォルダーに保存する
Visual Studio 2012 Ultimate で Visual Basic.Net アプリケーションを作成しました。このアプリケーションがProgram Files
フォルダーにインストールされると、ファイルが保存されると、次の場所に配置されます。
次のディレクトリにファイルを保存するように指定するにはどうすればよいですか。
フォルダー (基本的に、VirtualStore フォルダーではありません)?
これを行うには、Windows 内でこのアプリケーションを登録する必要がありますか?
前もって感謝します
windows-7 - 読み取り/書き込みファイルの VirtualStore へのファイル リダイレクトを防止するにはどうすればよいですか?
.net 2.0 で C# を使用しています
プログラム データを次のファイルに保存しています。C:\ProgramData\MyProgramName\fileName.xml
アプリケーションを一度インストールして実行した後、アンインストールし(アンインストール中に「プログラムデータ」からすべてのファイルを削除しています)、アプリケーションを再インストールして実行しました。
奇妙なことに、プログラム データ内のファイルが存在するかのようにアプリケーションが起動しました。つまり、データ ファイルが削除されたにもかかわらず、アプリに古いデータがあったということです。
実行時:
ファイルが存在しないことは確かにわかっていましたが、「true」になりました。
アプリケーションを管理者として実行したところ、ファイルが存在しなかったため、事態は奇妙になりました。
調査の結果、管理者権限なしでアプリケーションを実行すると、次のようになることがわかりました。
私は得る
実際、以前のインストールから存在していたファイルがありました (存在を知らなかったので、明らかに削除しませんでした)。
管理者権限なしでアプリを実行しているときにこれを停止する方法を教えてください。
VirtualStore フォルダーにファイルを自動的に作成したくありません。これを止めるために考えられるすべての方法について話し合ってください。
html - Flash バーチャル ギャラリーの代替
Flash Like Virtual Store の要件があります。サイトが読み込まれると、ユーザーは Virtual Store の全画面パノラマ ビューで表示され、ユーザーが製品のいずれかをクリックすると、ビデオのように再生されます。ストア、そのカテゴリが読み込まれます。これは Flash で行うことができますが、私は Flash が得意ではありません。jQuery の代替手段について知りたいです。
jQueryまたはHTML5で上記のようなものを作成できますか?jQueryまたはHTML5で同じデモリンクを提供してもらえますか?
vb.net - Virtual Store / ProgramData に保存されたファイルを停止するには?
[ 2 か月前にこの質問を送信しましたが、返信がありませんでした ...明らかに問題はまだ発生しており、アプリの新しいバージョンをリリースしようとしているため、ユーザーに削除してもらうためのドキュメントを作成しています。仮想ストアのすべてのエントリ - 私がやりたくなかったこと....だから、誰かが私たちを助けてくれることを本当に望んでいますか?! ]
このトピックに関する多くの情報があることを感謝しますが、私はまだ厄介な問題を抱えており、どこに行くべきかわかりません...したがって、ここに来ます!!
REPORT ファイルを ProgramData の下のフォルダーにインストールするアプリ (VB.NET) があります。現在、アプリの dll はサード パーティのアプリ (明らかに制御できない) から実行されており、このサード パーティのアプリを使用してレポートを実行できます。ただし、レポートが実行されると、レポートが更新されるため、「最終実行日」が保存されます。これが私たちが楽しんでいる原因です。
UAC をオンにすると、レポート ファイルは仮想ストア内の同等の場所にコピーされます。これはもちろん、アプリの現在のバージョンを使用している間は問題ありませんが、新しいバージョン (変更されたレポートを含む) をリリースすると、これらの新しいバージョンは ProgramData に正しくインストールされますが、ユーザーがアプリを実行すると、仮想ストアからの古いレポート。
新しいバージョンをインストールする前に、Virtual Store からすべてのレポートを削除するように人々に指示する、いくつかのインストール ドキュメントを作成するところです。
サード パーティ アプリは、独自のレポートも ( ProgramData の下の別の場所に) インストールし、Virtual Store を起動せずにレポートを更新できます。
dll にマニフェストを追加しました:
それが治療になることを願っていますが、残念ながらそうではありません!
だから、私はあなたが持っているかもしれないどんな提案にもオープンです?!?
乾杯、
クリス。
c# - 管理者以外のユーザーで Windows ディレクトリ (仮想ストア) に書き込む
Windows ディレクトリからデータを読み取るレガシー アプリケーションのインターフェイスを作成しています。
したがって、Windowsディレクトリにデータを書き込む必要があります。(Windows 8 オペレーティング システム)
以下のコードを使用して、ファイルを書き込むための Windows フォルダー パスを取得しています。
MSDNで読んだように、アプリケーションを実行すると、通常のユーザーとして仮想ストアの Windows フォルダーにデータが書き込まれますが、機能していないようです。アクセス拒否エラーが発生しています。
私のアプリケーションは x86 プラットフォームで構築されています。
私が欠けているもの、またはウィンドウ 8 OS の制約。
どうぞよろしくお願いいたします。