DebugとReleaseでApp.configを切り替える(その3:VS 2012 XDT 編)

なんかフォロー記事ばかり書いてますが、今度はこの記事のフォロー。

このApp.configの切り替え、VS2012で同じことをやってみたんですが、VSが自動修正をいれてくれたのでちょっと訂正をします。前回の記事に

プロジェクトファイル(*.csproj)の

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

というタグの下に

  <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
  <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

を追加します

とありますが、この「」の前後を次のようにします。

  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <Import Project="$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

見れば分かりますが、どうも2012でマクロが増えたようで、VisualStudioVersionがとれるようなんですね。でも2010ではとれないのでデフォルト値として設定しておくようです。この記述をすることで2010でも2012でも読めるようになります。