【问题标题】:How to change hardcoded variables basing on publish configuration?如何根据发布配置更改硬编码变量?
【发布时间】:2020-05-11 01:36:43
【问题描述】:

我必须发布同一个基于 .NET Core 3.1 的控制台应用程序的多个版本,这些版本是相同的,这些版本之间的唯一区别是它们需要连接的硬编码服务器地址。

我的问题是,如何在编译时根据 .NET 发布配置更改硬编码变量的值?

【问题讨论】:

  • 为什么不使用配置文件或环境变量?这样您就可以为所有部署构建和部署相同的二进制文件,包括继承在其他部署中完成的测试?

标签: c# .net-core


【解决方案1】:

我同意 cmets 你应该使用配置文件或环境变量如果你仍然坚持硬编码你的所有值,你可以做类似的事情。

硬编码你的变量。

public const string UrlDev = "";
public const string UrlProd = "";

当您即将使用该网址时,您可以像在您的应用中那样做

var url = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development" ? UrlDev : UrlProd

环境变量可以像这样在发布时传递给您的应用程序

dotnet publish /p:Configuration=Release /p:EnvironmentName=Development

上面一行会在csproj文件中创建如下sn-p

    <environmentVariables>
      <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Staging" />
    </environmentVariables>

因此,您使用已附加在应用程序上的环境变量进行发布,然后您决定在此变量上使用哪个 url。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 2022-06-14
    • 2019-04-06
    • 2013-04-07
    相关资源
    最近更新 更多