c# - windows 安装程序无法访问目录
问题描述
我正在尝试使用 Windows 服务安装程序为 Windows 服务(该服务是 LocalSystem 帐户)运行一些自定义操作代码,我收到以下错误消息:
安装 MSI 时出现错误消息:
Error 1001. An Exception occurred in the OnAfterInstall event handler
of System.ServiceProcess.ServiceInstaller. --> Access to the path XXX
is denied.
此代码引发错误:
protected override void OnAfterInstall(IDictionary savedState)
{
string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
System.IO.File.WriteAllText(path, "test");
}
在我试图访问服务 .exe 目录的代码中,我可以删除在那里创建的文件
我的目标是为安装/卸载过程进行自定义操作。我想删除安装后创建的文件,如日志和配置文件。
谢谢
解决方案
您正在尝试将文本写入目录而不是文件。变量“path”从 Path.GetDirectoryName() 返回,它是一个目录。在下一行中,您尝试对此变量执行 File.WriteAllText(),因此出现错误。
推荐阅读
- kdb - 保护执行,2 例
- python - 基于pandas数据框的多条件Oracle SQL查询
- javascript - 使用聚合函数 mongoose 检索特定电视节目剧集的所有信息,包括演员和导演
- c# - 为什么ban命令不起作用dsharpplus?
- flutter - 滑动以返回在 ios 中的颤振 webview 中不起作用
- html - HTML 输入的调度键盘事件未更新值
- sql-server - 如果在 SSMS 中不满足条件,where 子句不返回任何内容
- python-3.x - 为什么此事件调度程序中缺少默认处理程序?
- python - 将 2021-01-18T11:18:10.833876+00:00 转换为日期时间 python
- visual-studio - Visual Studio 颜色代码?