我正在尝试使用nuget中的Microsoft.Diagnostics.Tracing.EventRegister注册EventSource。我重建我的项目及其生成的清单。
此后,我通过admin运行cmd并执行此命令:
wevtutil.exe im "ETW loggiing.MyTestSource.etwManifest.man"
然后cmd返回此警告
**** Warning: Publisher MyTestSource resources could not be found or are not
accessible
to the EventLog service account (NT SERVICE\EventLog).
之后,我更改了文件权限
它可以工作,但是为什么会出现此警告,以及如何使用代码解决该问题?
我通过设置从代码对dll文件的访问来解决此问题:
FileInfo fInfo = new FileInfo(path);
if (fInfo.Exists)
{
FileSecurity security = fInfo.GetAccessControl();
security.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.AuthenticatedUserSid, null), FileSystemRights.ReadAndExecute, AccessControlType.Allow));
fInfo.SetAccessControl(security);
}