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. 参考文献











