我使用 .net 使用单击一次安装完成了 C# wpf 安装。一切正常。然后我有以下代码,它是已安装程序的一部分:
String destinationPath = System.Windows.Forms.Application.StartupPath + "\\" + fileName;
File.Copy(path, destinationPath, true);
this.DialogResult = true;
this.Close();
但我收到这个错误:
System.UnauthorizedAccessException:对路径 C:\user\pc\appdata\local\apps\2.0....... 的访问被拒绝。
在System.IO.File.InternalCopy(字符串sourceFileName,字符串destFileName,布尔覆盖,布尔checkHost)
在 System.IO.File.Copy(字符串源文件名,字符串目标文件名,布尔覆盖)
这是权限错误还是我需要调整代码中的某些内容?
让我困惑的是,为什么用户可以通过单击一次进入该目录来安装程序而不会出现任何问题,但将文件上传到该目录却不起作用?
安装应用程序时,安装程序通常会要求管理权限。如果用户选择“是”,程序将运行,并且具有比普通用户更多的路径的读写访问权限。如果安装程序没有要求管理权限,则可能只是 ClickOnce 在某种提升的权限下自动运行。
我建议您改为写入本地 appdata 文件夹,但如果您确实想写入与应用程序相同的目录,则必须首先以管理员权限运行应用程序。
要使您的应用程序始终要求管理员权限,您可以修改应用程序的清单文件并设置requestedExecutionLevel
tag's level
归因于requireAdministrator
:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
您可以阅读更多内容如何强制我的 .NET 应用程序以管理员身份运行?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)