我有这三个项目的解决方案。
- 网络 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 项目中使用了配置转换。例如,我有一个 app.production.config 将上述 Web 引用转换为指向生产 Web 引用,如下所示:
<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 不包含上面显示的任何应用程序设置。我可以使用反射器钻入 DAL.dll 并查看 service.asmx 路径。但是,它不进行转换,因此发布的应用程序不使用 my.PRODUCTIONSERVER.local:8888。
因此有两个问题。
- 为什么发布不使用引用类库中的 xdt 转换?
- 如果应用程序设置块必须在 Web API 项目的 web.config 中,这是否意味着我应该从 DAL 中删除 Web 引用并将其添加到 Web API 项目中?...或者我可以只留下参考并将相关的 applicationSettings 块复制到 web.config 吗?