Visual Studio 2017 ASP.NETでビルド構成別にconfigを切り替える方法


Visual Studio 2017 で ASP.net MVC のプロジェクトをビルド構成別にconfigを切り替える方法として、Web.[ビルド構成].Config を使用する方法があります。
これを行うには、Visual Studio拡張のConfiguration Transformを利用することで、簡単にファイルを用意することができ、またプレビュー確認もできます。

しかしながらこのビルド構成別切り替えは、発行時にのみ適用されるもので、Web.Debug.configのように開発時だけ適用したいという用途があっても、これだけではconfigが切り替えられることはありません。そこで調べてみたところ、プロジェクトファイルを編集することで、Visual Studioでのビルド時にも対応可能であることがわかりました。(参考

ビルド時のビルド構成別config適用方法

  1. Visual Studioのソリューションエクスプローラ上で、プロジェクトを右クリックし、「プロジェクトのアンロード」を実行する
  2. プロジェクトを右クリックし、「編集 [プロジェクト名].csproj」を実行し、エディタを開く
  3. Microsoft.WebApplication.targets の Import Projectを下記の通り書き換える。
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
    ↓
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" />
  4. 最終行の1行上(</Project>の上)に以下を追記する
    <Target Name="BeforeBuild" Condition="'$(PublishProfileName)' == '' And '$(WebPublishProfileFile)' == ''">
        <TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
    </Target>
  5. ソリューションエクスプローラ上で、プロジェクトを右クリックし、「プロジェクトの再読み込み」を実行する

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中