我有一个应用程序,我正在实现log4net.dll
。我在不同的计算机上安装了这个应用程序并且工作正常。
我的应用程序安装在C:\ ProgramFile \ myApplication。
但问题是用户在ProgramFile下没有写入权限。 它不写日志?
我想知道有什么办法可以在安装过程中为文件夹分配所有访问权限。我经历了不同的文章,但找不到任何满意的答案。
任何帮助都将不胜感激。
答案 0 :(得分:1)
您不应将日志文件放在应用程序的(子)文件夹中! 将它们放在确定每个用户都具有写权限的位置,例如$ Appdata或$ LocalAppdata(我更喜欢日志文件)
log4net config的示例:
<file value="${APPDATA}/My Company/My Product/Logs/My Application.log" />
取自这里:
答案 1 :(得分:0)
我在WIX安装程序中处理过类似的问题,这里是代码:
DirectoryInfo directoryInfo = new DirectoryInfo(session["..."]);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
SecurityIdentifier localService = new SecurityIdentifier(WellKnownSidType.LocalServiceSid, null);
FileSystemAccessRule directoryAccessRule = new FileSystemAccessRule(localService, FileSystemRights.FullControl, AccessControlType.Allow);
directorySecurity.AddAccessRule(directoryAccessRule);
directoryInfo.SetAccessControl(directorySecurity);
授予本地服务帐户对文件夹的完全访问权限。只需通过将使用您的应用程序的用户的SID更改本地服务用户的SID。