公開プロファイルを作成するときに、公開でこのプロファイルに使用する構成を選択するオプションがあります。オプションは、Debug、Release、またはStagingのようなカスタム定義のオプションです。問題は、リリースまたはデバッグ以外の構成、たとえばステージングを選択した場合、Visual Studioは私の選択を完全に無視し、変換とビルドにWeb.Release.configを使用することです。私は何か間違ったことをしていますか、それともこれは仕様によるものですか?公開では、リリースとデバッグのみが許容可能な構成として認識されるようです。この問題について何か考えはありますか?
Visual Studio2012RTMを使用しています。
アップデート1::「NightlyLive-任意のCPU」構成が選択されました:
ここでは、独自のカスタム構成「NightlyLive」を選択します。
そして、これが私が公開したときに何が起こるかです:
6>------ Build started: Project: UI.Next, Configuration: Release Any CPU ------
7>------ Publish started: Project: UI.Next, Configuration: Release Any CPU ------
7>Transformed Web.config using [...]\UI.Next\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
ご覧のとおり、Release Any CPU(NightlyLive-Any CPUの代わりに)を使用してプロジェクトをビルドし、Web.Release.config(Web.NightlyLive.configの代わりに)を使用してWeb.configを変換します。
アップデート2::プロファイル名が「NightlyLive」に名前変更されました:
ここでは、プロファイル名の名前を「test」から「NightlyLive」に変更します。
コンソール出力は次のとおりです。
6>------ Build started: Project: UI.Next, Configuration: Release Any CPU ------
7>------ Publish started: Project: UI.Next, Configuration: Release Any CPU ------
7>Transformed Web.config using [...]\UI.Next\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
7>[...]\UI.Next\Web.NightlyLive.config(23,18): Warning : Argument 'debug' did not match any attributes
7>[...]\UI.Next\obj\Release\TransformWebConfig\transformed\Web.config(78,6): Warning : No attributes found to remove
7>Transformed obj\Release\TransformWebConfig\transformed\Web.config using [...]\UI.Next\\Web.NightlyLive.config into obj\Release\ProfileTransformWebConfig\transformed\Web.config.
したがって、ここでも、ReleaseAnyCPUを使用して構築しています。
ただし、Web.configの場合、最初にWeb.Release.configを使用して変換し、次にWeb.NightlyLive.configを使用して前の変換に加えて2番目の変換を実行します。
私が思う二重変換は設計によるものであり、理にかなっています。ただし、カスタム変換ファイルを強制的に使用するには、プロファイル名を構成名に変更する必要があるという事実は正しくありません。
アップデート3::TestSolutionが追加されました
簡略化されたソリューションは、ここからダウンロードできます。
最初に、まったく新しいvs2012ソリューションを作成しましたが、すべてが正常に機能しました。そこで、現在のソリューションを取り除いて、テストケースとしてアップロードすることにしました。
私のソリューションは元々、vs2012で開いたvs2010ソリューションであり、vs2012がソリューションに必要な変更を加えたことに注意してください。
アップデート4::評決
私のソリューション構成はすべて台無しにされたと思います。したがって、基本的にこの問題を解決するために、カスタマイズしたソリューションとプロジェクト構成をすべて削除し、web.config変換ファイルとともにそれらを再作成しました。
問題が解決しました。