gpt4 book ai didi

c# - Visual Studio 网络核心 : Switch Environment Variables for Multiple Projects

转载 作者:行者123 更新时间:2023-12-02 22:14:15 25 4
gpt4 key购买 nike

我们在一个解决方案中有多个项目,并且需要一种方法来快速将环境更改为另一个,例如 QA。我们的解决方案中有 8 个项目。如何做到这一点,而不需要手动通过每个?
Visual Studio 中是否有快速设置?
enter image description here
注意:我们有多个 API 项目,它们没有依赖关系。

最佳答案

解决此问题的一种方法是拥有一个解决方案级别的“环境”文本文件,每个 API 项目都可以“链接”到该文件。然后在每个API项目的ProgramStartup逻辑,让他们读取这个全局文件以在运行时设置环境。
例如,这是我的示例解决方案,其中包含 2 个 API 项目:
enter image description here
第 1 步:创建“全局”环境文件
首先,我添加了一个解决方案级别的文本文件 Environment.txt它只是具有我希望在下面运行所有 API 的“当前”环境的名称:

Performance
步骤 2:将 Environment.txt 文件链接到每个 API 项目
第二个是 链接 Environment.txt文件到每个 API 项目,使用 Visual Studio 的 Add Existing Item对话框,然后选择 Add As Link选项:
enter image description here
请注意,链接文件上的图标与普通文件略有不同。
第 3 步:确保 Environment.txt 实际上已复制到 Bin 目录
第三是确保每个添加的链接文件的 Copy to Output选项设置为 Copy Always :
enter image description here
第 4 步:一小段代码......
最后,在每个 API 项目的 Program.cs 中文件,您可以读取此文件并在运行时设置环境:
namespace MicroserviceSandbox.ApiTwo
{
using System.IO;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;

public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
// *** Dynamically set the environment.
var binDirectoryPath = new FileInfo(typeof(Program).Assembly.Location).Directory.FullName;
var environmentFilePath = Path.Combine(binDirectoryPath, "Environment.txt");
var environment = File.ReadAllText(environmentFilePath);
webBuilder.UseEnvironment(environment);
// ***

webBuilder.UseStartup<Startup>();
});
}
}
}
假设
  • 上面的 C# 代码片段假定您的 API 项目使用的是 ASP.NET Core v3.1。
  • 关于c# - Visual Studio 网络核心 : Switch Environment Variables for Multiple Projects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63346915/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com