如何用C#写入程序文件(x86)?

时间:2016-09-08 05:07:12

标签: c#

我正在开发的应用程序的要求是能够为外部程序安装插件。安装插件包括将dll放入plugins目录。问题是plugins目录位于Program Files(x86)的文件夹中。当试图通过File.WriteAllBytes写入它时,我遇到了UnauthorizedAccessException。

  • 即使程序以管理员身份运行,也会发生此错误。
  • 我尝试将我的清单修改为levelAdministrator。
  • 我也尝试使用runas生成一个新进程。

如何将我的dll放入Program Files(x86)中的文件夹?

3 个答案:

答案 0 :(得分:0)

尝试添加

[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);
}

答案 1 :(得分:0)

我认为您用于登录Windows并开始编程的登录帐户不是真正的管理员帐户。

尝试检查您的帐户权限并以管理员模式运行visual studio 看看你是否可以在调试模式下编写。

检查并给出结果。

答案 2 :(得分:0)

我很傻。我在写入的Program Files中指定了目录,但是路径中没有包含文件名。 UnauthorizedAccessException让我失望。