C# 在服务器上部署时获取文件的目录
在我的解决方案中,我有多个项目,在项目A中,我希望从项目B中的文件中创建System.IO.File.ReadAllText(字符串目录),但是我不希望硬编码路径,因为一旦部署到托管服务器上,路径将发生更改。我已将副本始终设置在文件上,但无法使用路径.Combine(GetCurrentDirectory),因为目录将不同,它将来自解决方案文件中的不同项目。我怎么能绕过这个 我也试过了C# 在服务器上部署时获取文件的目录,c#,asp.net,C#,Asp.net,在我的解决方案中,我有多个项目,在项目A中,我希望从项目B中的文件中创建System.IO.File.ReadAllText(字符串目录),但是我不希望硬编码路径,因为一旦部署到托管服务器上,路径将发生更改。我已将副本始终设置在文件上,但无法使用路径.Combine(GetCurrentDirectory),因为目录将不同,它将来自解决方案文件中的不同项目。我怎么能绕过这个 我也试过了 System.String.Format(@"{0}bin\{1}", System.AppDomain.Cu
System.String.Format(@"{0}bin\{1}", System.AppDomain.CurrentDomain.BaseDirectory, filename);
但是问题是项目b中的文件不是BaseDirectory。CurrentDomain.BaseDirectory仅适用于桌面应用程序。没有理由访问web应用程序的
bin
文件夹中的任何内容。从安全角度来看,这也是一个非常糟糕的想法-您必须使用提升的特权来允许web应用程序访问bin
中的文件。将所需的任何资源/资产放在文件夹中,并使用Server.MapPath将相对URL映射到绝对文件位置。Web应用程序项目模板有一个App_数据文件夹。为什么不使用它?CurrentDomain.BaseDirectory仅适用于桌面应用程序。没有理由访问web应用程序的bin
文件夹中的任何内容。从安全角度来看,这也是一个非常糟糕的想法-您必须使用提升的特权来允许web应用程序访问bin
中的文件。将所需的任何资源/资产放在文件夹中,并使用Server.MapPath将相对URL映射到绝对文件位置。Web应用程序项目模板有一个App_数据文件夹。你为什么不用它?