我在C#中为我的单线程应用程序创建了一个简单的Logging类。它有3个自解释的公共方法(Clear(),Log()和Show())。当我在开发模式下运行程序时,它按预期工作。但是,当我部署并安装程序时,第一次调用Log()时出现以下错误。
System.UnauthorizedAccessException:
Access to the path 'C:\Program Files (x86)\programDir\log.txt' is denied.
有什么我想念的吗?我不确定如何调试,因为它在开发模式下工作正常。
public static class Logger
{
private static string FilePath
{
get
{
return Path.Combine(Directory.GetCurrentDirectory(), "log.txt");
}
}
public static void Clear()
{
if (File.Exists(FilePath))
{
File.Delete(FilePath);
}
}
public static void Log(string sLine)
{
File.AppendAllLines(FilePath, new string[] { sLine });
}
public static void Show()
{
if (File.Exists(FilePath))
{
Process.Start(FilePath);
}
}
}
答案 0 :(得分:0)
对程序文件目录的写入权限需要特殊权限,最佳做法是使用应用程序数据文件夹存储应用程序创建的文件。