【问题标题】:Transform app.config file at Asp.Net Core solution publish?在 Asp.Net Core 解决方案发布时转换 app.config 文件?
【发布时间】:2018-02-09 05:29:27
【问题描述】:

我有一个 .NET Framework 4.6.1 的 ASP.NET Core WebApi 项目。而且我还有一个 app.config 文件,其中包含一些 WCF 服务的端点。对于 Dev 和 Qa 等每个环境,我都有相应的 app.config。但是当我发布解决方案时,它不会根据环境转换 app.config。您对我如何做到这一点有任何想法吗?

【问题讨论】:

  • 如何为每个环境加载 app.config?你所说的“变换”是什么意思
  • 我右键单击 app.config 文件并选择“添加配置转换”。它为每个环境生成了一个配置文件,当我右键单击其中一个并选择 Preview cpnfig transform 或类似的东西时,我什至可以看到更改。但是当我发布时,它不会根据环境转换和复制相应的app.config文件
  • @Alina 您在 2015 / 2017 年使用的是哪个版本的 Visual Studio?和 asp.net 核心模板 - 基于project.json 还是基于.csproj
  • 我正在使用 Visual Studio 2015 和 project.json。我尝试升级到 .csproj,但在发布时我不断收到一些证书问题。

标签: c# asp.net-core asp.net-core-mvc asp.net-core-webapi


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多