誰かが以下の私の仮定を確認または否定したり、代替案を提供したりできますか?
私の目標
ASP.NET MVC 4 アプリケーションをプリコンパイルしてマージできるようにしたいと考えています (こことここに記載されているように)。
症状
Visual Studio 2012 に ASP.NET MVC 4 プロジェクトがあります。変換Web.config
で削除されるさまざまなエントリが含まれています。Web.Release.config
削除されたエントリの 1 つは要素全体です。configSections
これらのエントリは運用サーバーの に保持されているためMachine.config
です。
ただし、リリース発行のためにプロジェクトをプリコンパイルおよびマージするように構成すると、次のエラーが発生します。
Unrecognized configuration section [our custom section name]
私の仮定
私が想定しているのは、本番サーバーに公開する前にすべてをローカルでプリコンパイルしていることです (これは完全に理にかなっています) が、そのプリコンパイル プロセスのその部分は.config
、プロジェクトからWeb.config
ローカルまでのチェーン全体を解決して検証することですMachine.config
(これは、実際にはあまり意味がありません)。そして、私のローカルMachine.config
は宣言していないためconfigSections
(または本番サーバーに依存している他の設定はいずれもMachine.config
)、解決されたWeb.config
ものは検証されません。
また、Web.config
検証が行われないため、サイトをプリコンパイルできず、実稼働環境に何も公開されません。
こする
それが実際に起こっていることである場合、私が考えることができる唯一の解決策は(私が見つけることができなかったいくつかの潜在的な構成オプションを除いて)プリコンパイルすることはできません.Machine.config
彼らのマシン上の本番サーバーのローカルコピー。そして、それは単に合理的ではありません。なぜなら、これらの共通設定を 1 つの場所で宣言するという目的全体が無効になるからです。