我的客户在windows10桌面上远程运行c#引导程序。
有一家公司的用户都遇到了同样的问题。没有其他公司报告该问题,我们无法在我们的测试环境中重现该问题。
我无法确定问题的原因。
问题是,每个用户都被迫手动启动C#程序,因为当用户登录到他的PC时,该程序无法自动启动。
当前自动启动程序的机制是在安装过程中在启动文件夹中提供快捷方式。
C:\Users\[Username]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
C#程序只是一个引导程序,用于启动Java Swing,因此它不能作为Windows Service运行(据我所知),因为它产生交互式显示。
该程序持续运行,除非它被用户明确地杀死,或者他注销,PC被重启等。
当bootstrap程序尝试在启动期间删除和复制可执行文件时,会出现该错误。
我的猜测是,要么文件正在使用中,要么用户没有删除文件的权限。
该程序安装在用户的主目录(C:\Users\[Username])
下
用户的IT管理员已确认该用户对子文件夹和可执行文件具有完全控制和所有权限(特殊权限除外)。
该用户不是管理员用户。
System.UnauthorizedAccessException: Access to the path 'C:\Users\username\UI\jre\bin\filename.exe' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalDelete(String path, Boolean checkHost)
at UI.Client.RetryDeleteFile(String filename) in Z:\Perforce\Head\main\src\dotnet\UIStartUp\UI\Client.cs:line 852
2019-04-02 06:59:05.SSS [ERROR] UI.Client:852: Not able to delete file (retrying): C:\Users\username\UI\jre\bin\username@company.com.exe:
寻找关于如何定位和解决这个问题的建议。
负责用户桌面的IT管理员不太合作,而且理所当然地失去了耐心,因为我们一直在摸黑。
我想我们可以想出一个安装选项,以避免删除文件,但这将禁用一个功能,通过该功能,我们可以远程升级我们的软件,而不需要通过安装过程。
发布于 2019-04-03 21:58:19
您可以尝试在删除前或复制后设置以下代码
File.SetAttributes(dest, FileAttributes.Normal);
例如:
File.SetAttributes(dest, FileAttributes.Normal);
File.Copy(file, dest, true);
https://stackoverflow.com/questions/55496545
复制相似问题