2012-04-24 3 views
1

私の現在の問題は、私のClickonceアプリケーションの更新が接続文字列を乱しているところです。これは主に、バックアップボックスを更新してから初めて(バックアップボックステスト後に)プロダクションボックスで実行するときに発生します。私のclickonceアプリケーションは、バックアップサーバからホストされたアップデートを見て、それをプルダウンして、プロセス内の良いIPを上書きします。既存のユーザー接続文字列を破棄することからclickonce更新を維持する

ユーザーには、すべてがまだ機能していますが、実際にはテストデータベースが表示されています。

私は読んでいましたが、接続文字列を「ユーザー」設定に移動すると、既存の値を保持することができます。これは、私の既存の値がデフォルト以外のものである場合にのみ有効です。

既存のユーザー接続文字列を維持するには、クライアントマシンで使用できないようにプロジェクト設定のデフォルトを設定する必要があります。最初にアプリケーションをデプロイした後で強制的に変更する必要がありますか?

これを行うことで、アップデートプロセスが行うチェックに合格し、ユーザーの設定値を保持しますか?

答えて

1

私はあなたのユーザーアプリケーションデータフォルダ内の設定ファイルに接続文字列を設定することでこの問題を解決できると思います。アプリケーションが起動すると、リソースが存在するかどうかを確認します。そうでない場合は、デフォルト値を使用して作成し、アプリケーションで変更を設定します。変更を適用した後、リソースに保存し、ユーザーがアプリケーションを起動するたびに、同じリソースをロードする必要があります。

クリックするだけで安全なユーザー固有のアプリケーションデータフォルダを取得するには、次のフォルダパスを取得して構成リソースファイルを保存します。

string appDataPath = 
    Path.Combine(
     Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData, 
     "[Company or App Name]")); 

これは、エンドユーザーのコンピュータでデータを読み書きするためのパスを提供します。このフォルダ内のデータは各展開で上書きされず、アプリケーションの展開フォルダのようにフォルダの場所も難読化されません。

これで問題が解決しない場合は、コメントでさらに質問してください。私はあなたのニーズの性質を反映するためにこの答えを更新します。

+0

難読化されたclickonceフォルダのパスは、間違いなく私の懸念事項の1つです。このソリューションは、私がやりたいことによく合うように見えるので、試してみます。ありがとうRLH! – TWood

+0

問題ありません!お役に立てて嬉しいです。 – RLH

関連する問題