2017-04-12 74 views
1

我有一个.NET Framework 4.6.1的ASP.NET Core WebApi项目。我也有一个app.config文件,其中包含一些WCF服务的端点。对于Dev和Qa等每个环境,我都有相应的app.config。但是,当我发布解决方案时,它不会根据环境转换app.config。你有什么想法可以做到吗?在Asp.Net中转换app.config文件核心解决方案发布?

+0

https://www.nuget.org/packages/SlowCheetah –

+0

如何为每个环境加载app.config?你是什​​么意思“转换” – DOMZE

+0

我右键单击app.config文件并选择“添加配置转换”。它为每个环境生成一个配置文件,当我右键单击其中一个并选择Preview cpnfig transform或类似的东西时,我甚至可以看到更改。但是当我发布时,它不会根据环境 – Alina

回答

0

我想出的解决方案是添加一个后期构建命令,将转换后的Web配置复制到MyProject.exe.config的顶部。为了这个工作,你需要将程序集重定向从你的app.config(输出)复制到你的web.config中。那么你只需要一个配置文件。这不是一个很好的解决方案,我将实现一种不同的方式来使用appSettings.json引用wcf连接,并在C#代码中创建客户端,但这种方式现在可行。在我们的持续集成构建中,我有一个powershell命令,在构建完成后执行相同的命令。另一个警告:我正在部署到IIS并需要web.config身份验证设置(对于Windows身份验证),因此我必须确保web.config和MyProject.exe.config都已部署。这最终成为相同的文件,IIS使用它需要的peices以及WCF客户端构建器使用它所需的部分。我们再也不会长期使用它了,我会建议以编程方式构建WCF客户端。

更新:我使用appsettings.json来包含基于环境的设置,并添加了一种方法来使用.netStandard中的system.servicemodel类连接到wcf。它工作得很好!

相关问题