問題タブ [settings.settings]
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.
.net - .NETデスクトップアプリのSettings.settingsとapp.config
デスクトップアプリケーションの設定を保存および管理するためのVisualStudioのこれら2つのメカニズムの明らかな冗長性に、私はかなり混乱しています。
- XML
app.config
ファイルを使用して、セクションに項目を追加できます<appSettings>
。ConfigurationManager
これらは、クラスを使用してコードから取得できます。 - または、Settings.settingsファイルを使用して、エディターを介して個々の設定を追加することもできます。Visual Studioは
Settings
、実行時に設定をタイプセーフに取得するためのクラスを生成します。
これらの2つのメカニズムは、同じ(またはほぼ同じ)目的を果たしているようです。いくつかの違いがあることは承知していますが、重複とその結果にも戸惑っています。たとえば、Visual Studioを使用してSettings.settings
ファイルに設定を追加すると、入力したすべての情報がファイルのエントリapp.config
としても表示されます。どうやら、同期メカニズムが存在します。ファイルの設定を変更すると、次にエディターでファイルを開いたときにVisualStudioからファイルapp.config
を更新するように求められます。Settings.settings
私の質問は次のとおりです。
- なぜ1つだけではなく2つのメカニズムなのか?
app.config
overを使用するための最も一般的なシナリオは何Settings.settings
ですか?- アプリが使用していて、デプロイ後に
Settings.settings
値を変更するとどうなりますか?すでにコンパイルおよび配布されているため、のapp.config
同期は発生しません。Settings.settings
ノート。このトピックに関する質問を検索しましたが、さらに混乱しています。たとえば、ここでのこの質問への回答はかなり矛盾しており、あまり光を当てていません。
注2.これがapp.config
設計時のファイル名であることを認識しており、VisualStudioがファイルを実行可能フォルダーにコピーして名前を変更するダイナミクスに精通しています。
c# - アプリケーション設定でオブジェクトのコレクションを保存する際の問題
カスタム オブジェクトのコレクションをアプリケーション設定に保存しようとしています。
この関連する質問の助けを借りて、現在私が持っているものは次のとおりです。
Settings.Settings Designer で、ブラウザー ボタンを使用して PeopleHolder タイプのプロパティを追加し、スコープを「ユーザー」に設定しました。Save() メソッドは正常に完了したようで、エラー メッセージは表示されませんが、アプリケーションを再起動するたびに設定が保持されません。
上記のコードには示されていませんが、カスタムコレクションではなく、文字列を永続化できます(SOに関する他の同様の質問で、デバッグ中に設定を保存できないバージョン番号に問題があることに気付いたので、ルールを適用したい可能性のある犯人としてそれをアウト.)
何か案は?私はこれを行うための非常に簡単な方法があると確信しています:)。
ご協力いただきありがとうございます!
visual-studio - 構成設定を変更すると、Visual Studio が "Settings1.Designer.vb" を生成します
ときどき (常にではありません)、[マイ プロジェクト] ページで設定を編集するときに、そこから値を追加または編集すると、エラーが発生します。'Settings is ambiguous between declaration in Modules '<project>.My.MySettingsProperty' and '<project>.My.MySettingsProperty'
Visual Studio は の複製を作成し、My Project\Settings.Designer.vb
両方を.vbproj
ファイルに登録します。
これが発生したら、Settings.Designer.vb を削除し、Settings1.Designer.vb の「1」を削除し、vbproj ファイルでその参照を削除する必要があります。
また、Telerik ORM モデル (designer1.vb にコピーされた designer.vb ファイル) を編集するときにも発生し、その場合、designer.vb ファイルが後で空になるという問題が追加されます。
これは、他の誰かによる問題の別の説明です(2009年以降、私のものを除いて答えがありません):http://social.msdn.microsoft.com/Forums/en-AU/vbide/thread/29e7b9ff-5cdc -456b-9d2f-bc85145e8eaf
考えられる原因、さらに重要なこととして、考えられる修正について考えていただけますか?
Visual Studio 2008 Standard を使用していますが、この問題は数か月前には発生していませんでした。
ありがとう
c# - Properties.Settings.setting でカスタム クラスを使用することは可能ですか?
設定を使用して、プログラムのデフォルト値またはユーザー設定を保存できることを知っています。
ただし、自分で作成したクラスを保持できる設定を行う必要があります。これは可能ですか?自分で作成したクラスが、[設定] の [種類] または [参照...] 列に表示されません。
ありがとう。
c# - 設定ファイルの任意のデータ型
Settings.settingsファイルには、デフォルトでリストされているデータ型がいくつかあります。[参照]を選択すると、ツリーからさらにいくつかのデータ型を追加できます。
私は実際にint[]
設定ファイルにを保存する必要があり、次のように実行しました。
プログラムの最初の実行時:
後でディスクに保存されます。とSettings.Save()
これは非常にうまく機能しますが、小さな問題があります。設定GUIインターフェイスを使用して単純なデータ型を追加する場合、カスタム追加は削除され、再度追加する必要があります。私は現在、この特別なケースを1つしか持っていないので、削除された場合に追加することは大したことではありません。一方、:を追加したのと同じ方法で、strings / ints / etcなどの後続の基本設定を追加することができますint[]
:それをSettings.Designerファイルに直接コーディングします。
これを行うためのより良い方法があるはずですか?
クラスはすでに部分的であるためSettings
、新しいファイル、たとえばCustomSettingsを作成する方が良い解決策でしょうか。このファイルは、クラス定義を継続し、これらのあいまいなタイプを含みますか?
c# - InnoSetupスクリプトでProject/Properties / Settings.settingsの値を使用しますか?
C#.NET4.0プロジェクトの1か所で値を変更できるようにしたい。このために、Properties/Settings.settings
基本的にXMLファイルである組み込みファイルを使用します。
ソフトウェアにInnoSetup(これはかなり一般的です)を使用しており、ファイルはC#.NETアプリケーションの値を格納するデフォルトの方法であるため、InnoSetupスクリプトがから値をプルする方法settings.settings
があるかどうか疑問に思いました。設定ファイル、またはセットアップスクリプトの変数を設定するためにこれを行うことができるスクリプトを私に指摘できれば。
編集:
XMLの例を実行しましたが、XPathクエリを使用して正しいノードを取得できません。これは私のスクリプトです:
この関数は、次のようにInnoSetupPrecompilerを使用して呼び出します。
XMLファイルは次のようになります。
このすべての目標は、C#プロジェクトのSettings.settingsファイルからアプリに値を設定し、hudsonインスタンスにコードをチェックアウトさせ、アプリのさまざまなバージョンに合わせてこのXMLファイルを変更し、たとえば、いくつかの値を変更できるようにすることです。設計時に知る必要はありません。このXMLファイルから変数を取得できるようにしたい。私はここでMSXML2を使用して立ち往生しています。どんな助けでも大歓迎です。
c# - ユーザー スコープ設定で既定のアプリケーション パス値を設定する方法
私のC#プロジェクトでは、新しいユーザーのデフォルト値になるように、設計時に設定したいフォルダーパスのユーザースコープ設定があります(間違っていなければ)。
デフォルト値をユーザーの AppData フォルダーの 1 つに設定したいと考えています。設定の値として何を入力すればよいですか? ソリューション エクスプローラーで MSVS Settings.settings UI をダブルクリックすると、それを参照しています (名前がわかりません)。
値は、たとえば Application.UserAppDataPath によって返される値である必要があります。
(私の他の質問と併せて読んでください: Environment.SpecialFolders と Application フォルダーの C# の違いを使用する必要があります)
ありがとう!
更新:
shf301の答えで、私はsettings.designer.csの中に入り、これをしました:
c# - アプリケーションの設定とsettings.settingsとconfigurationmanagers.appsettings
さて、私はアプリケーションとユーザー設定を実装する方法に関するすべての異なるオプションを学ぼうとしていますが、それはすべて私にとって非常に混乱しています。
<applicationSettings>
セクションを作成するsettings.settingsデザイナーを使用することと、ドキュメントに従ってセクションを作成するConfigurationManager.AppSettingsプロパティを使用することの違いは何<appSettings>
ですか?
アプリ/ユーザー設定にsettings.settingsデザイナーを使用することの長所/短所は何ですか?
System.Configuration名前空間のクラス(特にSystem.Configuration.Configurationクラス)が主にカスタムセクションを作成するためのものであると想定した場合、正しいですか?
System.Configuration名前空間内の何かを<applicationSettings>
使用して、settings.settingsデザイナーを使用せずにセクションを作成または読み取ることはできますか?それは単なるカスタムセクションでしょうか?
ご覧のとおり、私は非常に混乱しています...それ以来、私の質問が出てくることを願っています。どうか、あなたが知っていることを教えてください。理解しようとして、このドキュメントを読み進めていきます。私の問題は、私が成し遂げる必要のある仕事を成し遂げることができないということではありません(私はsettings.settingsを使用して必要なことを成し遂げることができます)...問題は実際にこの混乱を理解し、私のすべてのオプションを知っていることです。
前もって感謝します。
アップデート:
Microsoftのオンラインドキュメントは、このトピックに関して恐ろしいものです(基本的には存在しません)。ついに見つけた
http://www.codeproject.com/Articles/19675/Cracking-the-Mysteries-of-NET-2-0-構成
そしてこれはそれをすべて非常によく説明しました。設定ファイルがマージされていることに気付いた後、それははるかに多くなりました!
.net - .NET アプリケーション設定が保持されている場所
長くなってしまい申し訳ありません。しかし、私が行ったことを理解することは、私の質問に答えるのに役立つと感じています.
まとめているプロジェクトにアプリケーションとユーザー設定を追加する作業を行っています。実際、私はタスクを完了し、適切なファイル スイッチごとにユーザー設定を更新またはリセットし、無効、重複、または有効なスイッチのイベントを発生させるファイル スイッチ検証クラスを作成しました。
そのすべてがうまく機能しています。
コーディングに関して言えば、私は常にこの学習障害を抱えていました。何かを快適に使用するには、何かがどのように機能するかを正確に理解する必要があります。私は、Visual Studio が私のために行ってくれるすべてのことを気に入っていますが、できる限りブラック ボックスを調べずにはいられません。
そうは言っても、.settingsファイルを使用して開始し、必要な設定を追加して、すべてをテストして、期待どおりにすべてを配線しました。もちろん、cs ファイルと app.config ファイルは完璧に生成されました。
デザイナー ファイルは T4 コード生成ツールからのものではないため、ラッパー クラスの静的インスタンスが .Default であることを制御できませんでした (コードでの読み取り方法が気に入らなかっただけです)。 ....
そこで、デザイナー ファイルからクラス全体を取り出して、自分の cs ファイルに追加し、必要な変更を加えて、cs ファイルとデザイナー ファイル、および .settings ファイルを削除しました。実行したことはまだしっかりと機能しています。
次に、それが適切にピックアップされていることを確認するために、すべての適切な属性などを使用してクラスに追加の設定を追加し、コードに表示されて問題なく動作することを確認しました。元の .settings ファイルから生成された設定と同じように、リセット、保存などを行うことができました。
でも...
app.config に新しい値が反映されていないことに気付きました。また、私のテストでは、元のユーザー設定の変更が反映されているようにも見えませんでした。
今、私は何かが完全に欠けている可能性がありますが...
実行可能ファイルを実行すると、デフォルト設定が表示されます。次に、さまざまなユーザー設定修飾子スイッチを使用して実行し、適切な設定を確認します。スイッチなしで再度実行すると、同じユーザー設定が表示されますが、実行可能ファイルを含むディレクトリに app.config またはその他のファイルが生成されません。ちなみに、埋め込みリソースには何も作成されていません。
最後に私の質問に:
これらの値は一体どこに保持されているのだろうか?
c# - Winforms 設定ページのカスタマイズ
C# で構築された設定ページがあり、2 つの方法でカスタマイズしたいと考えています。
- さまざまな設定をアルファベット順ではない特定の順序で並べ替えたい
- 他の設定の値に基づいて、特定の設定の編集を有効/無効にしたいと考えています。
設定ページでこれを行うことは可能ですか、それともカスタム コントロールを設計する必要がありますか?
ありがとう!