提问人:Tim 提问时间:9/8/2016 更新时间:9/8/2016 访问量:1391
如何在C#中写入Program Files(x86)?
How to write to Program Files (x86) in C#?
问:
我正在开发的应用程序的一个要求是能够为外部程序安装插件。安装插件包括将 dll 放入 plugins 目录。问题是 plugins 目录位于 Program Files (x86) 中的文件夹中。尝试通过 File.WriteAllBytes 写入它时,我遇到了 UnauthorizedAccessException。
- 即使程序以管理员身份运行,也会发生此错误。
- 我尝试将我的清单修改为级别 requireAdministrator。
- 我还尝试使用 runas 生成一个新进程。
如何将我的 dll 放入 Program Files (x86) 中的文件夹中?
答:
1赞
Shannon Holsinger
9/8/2016
#1
尝试添加
[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
在涉及 IO 活动的方法之上。F/E,以下将“myFile”复制到程序文件目录:
[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
public void copyFile(string myFile){
System.IO.File.Copy(myFile,Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
}
0赞
Reza Akraminejad
9/8/2016
#2
我认为您用于登录 Windows 并开始编程的登录帐户不是真正的管理员帐户。
尝试检查帐户权限,并以管理员模式运行 Visual Studio,然后 查看是否可以在调试模式下编写。
检查它并给出结果。
0赞
Tim
9/8/2016
#3
我很傻。我在要写入的 Program Files 中指定了目录,但没有在路径中包含文件名。UnauthorizedAccessException 让我失望了。
评论