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の拡張機能
> 拡張機能の管理
を選択する
3.2. 検索ウィンドウにSlowCheetah
と入力して、ダウンロードボタンをクリックする
3.3. 画面下部の閉じるボタンをクリックして、Visual Studioを終了する
3.4. インストール画面が表示されたら、Modifyボタンをクリックする
3.5. Closeボタンをクリックする
4. App.configの分割
4.1. ソリューションエクスプローラーよりApp.configを右クリックして、Add Transform
を選択する
4.2. NuGetパッケージのインストールの確認ダイアログが表示されたら、はいボタンをクリックする
4.3. 再度ソリューションエクスプローラーよりApp.configを右クリックして、Add Transform
を選択する
4.4. App.configがビルドターゲット毎に分割される
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と変換後の差分が確認できる
6. 参考文献