これら3つのプロジェクトで解決策があります。
- Web API
- ダル
- ドメイン
DAL プロジェクトは、Web 参照を持つクラス ライブラリです。したがって、そのプロジェクトの app.config には次のようなセクションがあります。
<applicationSettings>
<Company.Project.Domain.Properties.Settings>
<setting name="Company_Project_Domain_Some_Service" serializeAs="String">
<value>http://my.server.local:8888/somePath/service.asmx</value>
</setting>
</Company.Project.Domain.Properties.Settings>
</applicationSettings>
遅いチーターがインストールされており、この DAL プロジェクトで構成変換を使用しています。たとえば、上記の Web 参照を次のように本番 Web 参照を指すように変換する app.production.config があります。
<applicationSettings>
<Company.Project.Domain.Properties.Settings>
<setting name="Company_Project_Domain_Some_Service" serializeAs="String">
<value>http://my.PRODUCTIONSERVER.local:8888/somePath/service.asmx</value>
</setting>
</Company.Project.Domain.Properties.Settings>
</applicationSettings>
API を公開すると、web.config には上記のアプリケーション設定が含まれていません。Reflector を使用して DAL.dll にドリルダウンし、service.asmx パスを確認できます。ただし、変換は行わないため、公開されたアプリは my.PRODUCTIONSERVER.local:8888 を使用しません。
したがって、2つの質問。
- パブリッシングで、参照されているクラス ライブラリで xdt 変換が使用されないのはなぜですか?
- アプリケーション設定ブロックが Web API プロジェクトの web.config にある必要がある場合、DAL から Web 参照を削除して Web API プロジェクトに追加する必要があるということですか? ...または、参照をそのままにして、関連する applicationSettings ブロックを web.config にコピーできますか?