我想在我的Web应用程序/ Web服务的bin目录中包含一个XML文件。我在Visual Studio的项目中包含了bin文件夹并添加了该文件。我将其Build Action设置为" Content"并复制到输出目录到"始终复制"。当我的代码找到它时,我使用
string dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
if (!dir.EndsWith(@"\")) dir += @"\";
获取目录并将其作为appPath
返回,其中appPath
是(非转义版本):
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\0c7655f\d4908928\assembly\dl3\5cf9fd67\fdc52284_ffa7d201\
然后我附上我的XML文件的文件名(其中string filename = "myXmlFile.xml"
)来读取它:
StreamReader reader = new StreamReader(appPath + filename);
但我在该行代码上遇到异常,它无法找到我的文件。我正在处理逃脱斜线的问题,所以不是那样的。当我检查路径指向的物理目录时,它没有被复制到该目录,这是异常的原因。那么如何让我的文件被复制到那里?
答案 0 :(得分:1)
如何使用HostingEnvironment.ApplicationPhysicalPath
var dir = Path.Combine(HostingEnvironment.ApplicationPhysicalPath, "bin\\filename.xml")