2016-06-26 7 views
0

私は、構成ファイル(拡張子cfgのテキストファイル)とアプリケーションとともにインストールされるSQLiteデータファイルからなるQTベースのアプリケーションを持っています。 コードは、設定ファイルがインストールディレクトリに存在することを確認します。Windows上でQTアプリケーションをインストールするCドライブ

私はこの奇妙な問題を抱えています。与えられたcfgファイルを実行しても更新されないが、設定は他の場所に保存されます。 cfgファイルを削除しても、アプリケーションは引き続き動作します。これは、OSが設定ファイルとデータベースファイルのコピーを作成し、実際のファイルではなく更新しているかのようです。

アプリケーションが別のドライブ(たとえばd::)にインストールされている場合、この動作は存在しません。さらに、管理者としてアプリケーションを実行すると、アプリケーションはC:ドライブに格納されている設定ファイルを編集して使用します。 Cドライブにインストールされた編集可能ファイルに対してこのようなキャッシュが存在します。もしそうなら、周りを回る方法。前もって感謝します。

+1

わからないので、コードがどのように見えるので、私たちはあなたを助けることができません。構成ファイルがINIファイルAPIを使用する場合、読み取りと書き込みがレジストリにリダイレクトされる可能性があります。調べる最も簡単な方法は、[Process Monitor](https://technet.microsoft.com/en-us/sysinternals/bb896645)を実行して、アプリケーションがアクセスするものを、コードをシングルステップと組み合わせて表示することです。あなたは、理由のためにQtのソースコードを持っています。 – IInspectable

答えて

1

これは、osが設定ファイルとdatbaseファイルのコピーを作成し、実際のファイルではなく更新しているかのようです。

本当にそうかもしれません。 Windows Vista以上では、Windows Virtual Storeという概念が導入され、アプリケーションが危険な場所に書き込むことを防ぐことができます。説明のために、例えば参照。 http://portableapps.com/node/35519

+0

ありがとうございました。だから私は私が推測する最初の起動時に別の場所に設定ファイルとDBファイルを移動する必要があると思う。そうする他の一般的な方法がありますか?問題は再インストール中です。仮想ストア内の古いファイルも引き続き考慮されます。 –

+0

プログラムが適切にインストールされている場合は、インストールされたプログラムの推奨事項と同じように、設定を '%APPDATA%'のサブフォルダに保存する必要があります。アンインストールでは、そのデータを残したり、削除したりすることができます。 –

関連する問題