5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C#でApp.configをビルドターゲット毎に分けたい

Last updated at Posted at 2023-07-28

1. はじめに

  • Javaのように設定ファイルを環境毎に分けて管理したい
  • Visual Studio 拡張機能 Configuration Transformが使えそうだが、Visual Studio 2022では使用できないため代替策を検討したい
  • いろいろ調べた結果、今回はMicrosoft社のSlowCheetahを使用して実現したい

2. 開発環境

  • C#
  • .Net 6
  • Visual Studio 2022
  • Windows 11
  • SlowCheetah (Visual Studio 拡張管理)
  • Microsoft.VisualStudio.SlowCheetah (NuGet)

3. SlowCheetahのインストール

3.1. Visual Studioの拡張機能 > 拡張機能の管理を選択する

image.png

3.2. 検索ウィンドウにSlowCheetahと入力して、ダウンロードボタンをクリックする

image.png

3.3. 画面下部の閉じるボタンをクリックして、Visual Studioを終了する

image.png

3.4. インストール画面が表示されたら、Modifyボタンをクリックする

image.png

3.5. Closeボタンをクリックする

image.png

4. App.configの分割

4.1. ソリューションエクスプローラーよりApp.configを右クリックして、Add Transformを選択する

image.png

4.2. NuGetパッケージのインストールの確認ダイアログが表示されたら、はいボタンをクリックする

image.png

  • NuGetの管理からMicrosoft.VisualStudio.SlowCheetahがインストールされていることが確認できる
    image.png

4.3. 再度ソリューションエクスプローラーよりApp.configを右クリックして、Add Transformを選択する

image.png

4.4. App.configがビルドターゲット毎に分割される

image.png

5. App.configのカスタマイズ例

5.1. App.config(オリジナル)

App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<appSettings>
		<add key="Application Name" value="Debug Application" />
	</appSettings>
</configuration>

5.2. App.Release.config

App.Release.config
<?xml version="1.0" encoding="utf-8"?>
<!--For more information on using transformations see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
	<appSettings>
		<!-- Application Name KeyのValueを置き換える -->
		<add key="Application Name" value="Release Application" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
		<!-- Application Version KeyのValueを追加する -->
		<add key="Application Version" value="1.0.0.0" xdt:Transform="Insert" xdt:Locator="Match(key)"/>
	</appSettings>
</configuration>
  • 変換したい設定を記載して、値を書き換える
  • Valueの最後に変換する内容を追記しておく
  • 書き方はTransform、Locatorに変換する内容を記載する
    • Transform : Insert(追加) または Replace(変換)
    • Locator : Match(key) または Match(name)

5.3. ビルドターゲットのApp.configを確認する

  • 確認したいApp.(ビルドターゲット).configを右クリックして、Preview Transformを選択する
    image.png

  • オリジナルのApp.configと変換後の差分が確認できる

    • 左側:オリジナル、右側:変換後
      image.png

6. 参考文献

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?