启动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/