メモ
VisualStudio2013
.NETFramework4.6

App.config で「'configuration' 要素が宣言されていません」の警告が出る場合

More than 1 year has passed since last update.

'configuration' 要素が宣言されていません

プロジェクトの「対象のフレームワーク」が catalog.xml で判定できない場合、
スキーマが読み込まれず、XMLの検証(validation)が出来ないため警告となるようです。

catalog.xml は「管理者として実行」したエディタで修正する必要があるので、
対象としたフレームワークの Developer Pack や Targeting Pack のインストールに失敗していると考えた方が良さそうです。

手作業での修正

「対象のフレームワーク」が ".NET Framework 4.6.1" の場合に警告が表示される際の修正例。
警告は消えますが、他に影響があるかもしれません。
修正は自己責任で。

パスの確認

catalog.xml のフォルダは、Visual Studio の設定で変更可能なので、次の手順で設定を確認します。

Visual Studio 2013の場合

  1. [ツール] メニューの [オプション]
  2. [テキスト エディター] - [XML] - [その他]
  3. [スキーマ]項目

次のような設定になっていると思います。

"%VsInstallDir%¥xml¥Schemas"

catalog.xml の修正

テキストエディタを「管理者として実行」で起動。
前段で確認したパスの catalog.xml を開く。

Associationタグの condition属性を修正します。

修正前
<Association extension="config" schema="%InstallRoot%/xml/schemas/%LCID%/dotNetConfig.xsd" condition="starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v4.5.') or $TargetFrameworkMoniker = ''" />
修正後
<Association extension="config" schema="%InstallRoot%/xml/schemas/%LCID%/dotNetConfig.xsd" condition="starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v4.5.') or starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v4.6.') or $TargetFrameworkMoniker = ''" />

こんな感じになれば良いかと。

catalog.xml
  <Association extension="config" schema="%InstallRoot%/xml/schemas/dotNetConfig20.xsd" condition="starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v2.')" />
  <Association extension="config" schema="%InstallRoot%/xml/schemas/dotNetConfig30.xsd" condition="starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v3.0')" />
  <Association extension="config" schema="%InstallRoot%/xml/schemas/dotNetConfig35.xsd" condition="starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v3.5')" />
  <Association extension="config" schema="%InstallRoot%/xml/schemas/dotNetConfig40.xsd" condition="starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v4.0')" />
  <Association extension="config" schema="%InstallRoot%/xml/schemas/dotNetConfig45.xsd" condition="$TargetFrameworkMoniker = '.NETFramework,Version=v4.5'" />
  <Association extension="config" schema="%InstallRoot%/xml/schemas/%LCID%/dotNetConfig.xsd" condition="starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v4.5.') or starts-with($TargetFrameworkMoniker, '.NETFramework,Version=v4.6') or $TargetFrameworkMoniker = ''" />
</SchemaCatalog>

参考