2016-09-08 96 views
-5

我正在開發的應用程序的一個要求是能夠爲外部程序安裝插件。安裝插件包括將dll放入插件目錄。問題在於plugins目錄位於Program Files(x86)的文件夾中。當試圖通過File.WriteAllBytes寫入它時,我遇到了UnauthorizedAccessException。如何使用C#寫入Program Files(x86)?

  • 即使程序以管理員身份運行,也會出現此錯誤。
  • 我已經嘗試修改我的清單級別requireAdministrator。
  • 我也嘗試用runas產卵一個新的過程。

如何將我的dll放入Program Files(x86)內的文件夾中?

+0

可能是UAC問題。 – DVJex

+0

即使在接受UAC提示後,FileWriteBytes也會繼續引發UnauthorizedAccessException。 – Tim

回答

0

我很傻。我指定了我正在寫入的程序文件內的目錄,但沒有在路徑中包含文件名。 UnauthorizedAccessException將我拋棄。

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

我認爲這是用來登錄到Windows,並開始與編程登錄帳戶是不是真正的管理員帳戶。

嘗試檢查您的帳戶權限並以管理員模式運行visual studio,並查看您是否可以在調試模式下編寫代碼。

檢查並給出結果。

相關問題