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

如何在C#中写入程序文件(x86)?,c#,C#,我正在开发的应用程序的一个要求是能够为外部程序安装插件。安装插件包括将dll放入插件目录。问题在于插件目录位于程序文件(x86)中的一个文件夹中。当试图通过File.writealBytes写入时,我遇到了UnauthorizedAccessException 即使程序以管理员身份运行,也会发生此错误 我已尝试将清单修改为requireAdministrator级别 我还尝试使用runas生成一个新进程 如何将dll放入程序文件(x86)内的文件夹中?尝试添加 [PermissionSet(

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

  • 即使程序以管理员身份运行,也会发生此错误
  • 我已尝试将清单修改为requireAdministrator级别
  • 我还尝试使用runas生成一个新进程
如何将dll放入程序文件(x86)内的文件夹中?

尝试添加

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

我认为你用来登录windows并开始编程的登录帐户不是真正的管理员帐户

尝试检查您的帐户权限,并以管理员模式运行visual studio,然后重试 看看是否可以在调试模式下写入


检查并给出结果。

我很傻。我在要写入的程序文件中指定了目录,但在路径中没有包含文件名。UnauthorizedAccessException将我抛出。

可能是UAC问题。即使在接受UAC提示后,FileWriteBytes仍会继续抛出UnauthorizedAccessException。