入れないのがいいんですけどね。ローカルで実行するときに、開発用のキー情報を入れることもあるでしょう。 でもリポジトリには入れたくないという感じ。
App.config を分割する
App.config を作って、こっちには当たり障りない情報を書きます。そして、appSettings タグに file 属性があるのでこいつに Secret.config とかって書いておきます。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings file="Secret.config"> <add key="a" value="a"/> </appSettings> </configuration>
そして Secret.config ファイルを作ってこんな感じにします。プロパティでビルドアクションはコンテンツで常にコピーするようにしておきましょう。
<?xml version="1.0" encoding="utf-8" ?> <appSettings> <add key="b" value="b" /> </appSettings>
今回は b の値が秘密って感じですね。あとは Secret.config あたりを .gitignore あたりに追加して完成です。
このときに、ConfigurationManager.AppSettings["a"] も ConfigurationManager.AppSettings["b"] もマージされてるので、どっちの値も取れます。
めでたしめでたし。
まとめ
でもまぁ exe にまとめちゃったら何もしないとプレーンテキストだから残念な感じになりますね。 Azure WebJobs みたいにクラウドで動くプロセスでユーザーのもとに配られないものならありですかね。WebJobs ならポータル側でアプリケーション設定できるので完璧ですね。