我有一个使用 nLog 写出日志文件的 WPF 应用程序。在我的机器上,它成功地写出日志文件。我创建了一个部署项目,并生成了一个安装程序,将其安装到程序文件中。安装成功,但是当应用程序运行时,nLog 生成的日志文件没有被创建。不会抛出异常。
我正在运行 Windows 7。
日志文件正在与可执行文件相同的目录中创建。
如果我以管理员模式运行已部署的应用程序,则日志文件创建成功。
我怎样才能克服这个?签署可执行文件有帮助吗?我真的需要它以管理员模式运行吗?
我有一个使用 nLog 写出日志文件的 WPF 应用程序。在我的机器上,它成功地写出日志文件。我创建了一个部署项目,并生成了一个安装程序,将其安装到程序文件中。安装成功,但是当应用程序运行时,nLog 生成的日志文件没有被创建。不会抛出异常。
我正在运行 Windows 7。
日志文件正在与可执行文件相同的目录中创建。
如果我以管理员模式运行已部署的应用程序,则日志文件创建成功。
我怎样才能克服这个?签署可执行文件有帮助吗?我真的需要它以管理员模式运行吗?
问题是您需要登录到不同的位置。您不应该C:\Program Files
从您的应用程序中写入。相反,将您的日志文件移动到类似%APPDATA%\Your Company\Your Application\Logs
.
通过使用%APPDATA%
,您的应用程序可以在不同版本的 Windows 上运行,并且如果它们改变了标准目录的结构(如 XP 和 Vista 之间),您的应用程序仍将登录到正确的位置。
Program Files 目录已正确锁定。更改应用程序以将日志文件写入不受限制的位置。(我更喜欢所有用户的应用程序数据目录。)
其他人所说的:程序文件目录被锁定。您需要使用另一个文件夹位置登录。
我在登录到 UserProfile 特殊文件夹方面取得了巨大成功,因此我的日志最终出现在以下文件夹结构中:
C:\用户\当前用户\我的文档\公司名称\应用程序名称\
有关特殊文件夹的一些有用信息,请参阅此链接:http ://en.wikipedia.org/wiki/Special_Folders
%USERPROFILE%\Documents