gpt4 book ai didi

c# - 如何将 SetBasePath 设置为 Program.Main 上的 dll 位置

转载 作者:行者123 更新时间:2023-11-30 21:30:36 25 4
gpt4 key购买 nike

启动dotnet dll时

 cd /
dotnet /tmp/donetproject/donetproject.dll

代码

.AddJsonFile("hostsettings.json", optional: true)

会看

/hostsettings.json

不是

/tmp/donetproject/hostsettings.json

设置 GetCurrentDirectory 无效

.SetBasePath(Directory.GetCurrentDirectory())

public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hostsettings.json", optional: true)
.AddCommandLine(args)
.Build();

return WebHost.CreateDefaultBuilder(args)
.UseUrls()
.UseConfiguration(config)
.UseStartup<Startup>();
}
}

最佳答案

您当前正在设置工作目录

.SetBasePath(Directory.GetCurrentDirectory())

这是启动进程/ 的目录,更具体地说是cd/。您真正想要的目录是 directory of your assembly :

.SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))

也许您应该考虑将您的工作目录改为您的应用程序目录,例如。 G。 cd/tmp/donetproject/.

关于c# - 如何将 SetBasePath 设置为 Program.Main 上的 dll 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54139335/

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