C# 相对路径,可在控制台应用程序和ASP.NET Web应用程序中使用

C# 相对路径,可在控制台应用程序和ASP.NET Web应用程序中使用,c#,asp.net,C#,Asp.net,是否可以指定相对于控制台和asp.net Web应用程序根目录的路径?所以 对于控制台应用程序,它应该相对于.exe文件 对于ASP.NET Web应用程序,它应该相对于根Web.Config 示例:假设我有一个名为“log.txt”的文件。我在一个单独的dll中有一个日志组件,它在“logs”文件夹下使用这个log.txt。我有两个应用程序使用这个组件,一个是控制台应用程序,另一个是ASP.NET Web应用程序 是否可以在日志组件中指定相对路径,以便在以下位置找到文件 mywebapp/

是否可以指定相对于控制台和asp.net Web应用程序根目录的路径?所以

  • 对于控制台应用程序,它应该相对于.exe文件
  • 对于ASP.NET Web应用程序,它应该相对于根Web.Config
示例:假设我有一个名为“log.txt”的文件。我在一个单独的dll中有一个日志组件,它在“logs”文件夹下使用这个log.txt。我有两个应用程序使用这个组件,一个是控制台应用程序,另一个是ASP.NET Web应用程序

是否可以在日志组件中指定相对路径,以便在以下位置找到文件

mywebapp/
-Web.Config
-bin/logging.dll
-其他web文件
-logs/log.txt

myconsoleapp/
-myconsoleapp.exe
-logging.dll
-其他一些DLL

-logs/log.txt

我建议做一点修改:


不要在日志组件中确定日志的路径。将其作为参数。在web应用程序上,您可以使用
Server.MapPath
()相对于绝对路径进行映射。

使用
AppDomain.CurrentDomain.BaseDirectory

参考:

  • 公认的答案
  • 第二个答案

  • 这也是我唯一的想法。遗憾的是,我的问题要复杂得多,这个日志记录只是一个例子(我实际上试图为多个组件找到多个自定义配置文件)。我不能接受这一点,因为这不是我问题的答案,但我还是会投赞成票。你能做到什么?您可以在这些组件中进行更改吗?还有什么Web应用程序?我可以在组件中进行更改,它是一个ASP.NET应用程序。