2

私が書いているWindowsフォームアプリがC:\ program files \ xxxにインストールされ、c:\ program files\xxxディレクトリへの書き込み権限がないアカウントで実行されるというクライアントの要件に苦労しています。 。つまり、ユーザーが手動で変更したり、アプリで変更したりできるように、構成ファイルを別の場所に配置する必要があります。

私はとにかくこれを行うために見つけていませんか?configSourceを使用できることを望んでいましたが、これには、外部構成ファイルがアプリケーションと同じ相対物理パスにある必要があるという制限があり、これは役に立ちません。appSettingsファイル属性は機能しますが、それはその構成セクション専用です。接続文字列やsystem.serviceModelなどの他の構成セクションを利用します。私のオプションがここにあることについて何か考えはありますか?

ありがとう!

4

2 に答える 2

5

アプリケーション設定フレームワークは、ユーザー スコープの設定を自動的に処理します。

デフォルト設定をapp.Configファイルに配置し、(プログラム内で) 設定を編集するメカニズムを提供できます。編集内容は、ユーザーのドキュメント フォルダー(ユーザーが書き込み権限を持っているフォルダー) 内のユーザー固有の設定ファイルに自動的に書き込まれます。app.Config各ユーザーが実際に直接書き込み可能にする必要はありません。

要素内に「書き込み可能な」設定の既定値を含めるだけで、<userSettings>すべてを書き込む場所に関する正しい Windows ガイドラインに従って、フレームワークがそれを処理します。

于 2012-08-29T17:18:51.170 に答える
0

次のコードを試してください

    private static XmlDocument loadConfigDocument()
    {
        XmlDocument ドキュメント = null;
        試す
        {
            doc = 新しい XmlDocument();
            doc.Load(getConfigFilePath());
            ドキュメントを返します。
        }
        キャッチ (System.IO.FileNotFoundException e)
        {
            throw new Exception("構成ファイルが見つかりません。", e);
        }
    }

    プライベート静的文字列 getConfigFilePath()
    {
        Assembly.GetExecutingAssembly().Location + ".config"; を返します。
    }

于 2012-08-29T17:23:58.383 に答える