2017-08-04 60 views
3

我試圖在Windows筆記本電腦和安裝一個post_build.ps1 Visual Studio中的常規構建工作後,在VB.NETUnauthorizedAccess上後生成的Visual Studio

當我在PowerShell命令運行該腳本的,這不是」沒有任何錯誤。但是,當我在Visual Studio中做到這一點通過建設,我有這樣的:

powershell ./_POST_BUILD.ps1 exited with code 1

如果啓用了診斷輸出,我可以通過輸出看到這一點:

1> AuthorizationManager check failed. (TaskId:39) 
1>  + CategoryInfo   : SecurityError: (:) [], ParentContainsErrorRecordException (TaskId:39) 
1>  + FullyQualifiedErrorId : UnauthorizedAccess (TaskId:39) 

我的嘗試:

  1. 將政策與不受限制和Set-ExecutionPolicy Unrestricted -scope LocalMachineSet-ExecutionPolicy Unrestricted -scope CurrentUser
  2. 變化在p在Visual Studio OST生成事件與右鍵Powershell.exe -ExecutionPolicy Unrestricted -file "$(SolutionDir)bin\debug\_POST_BUILD.ps1"
  3. 阻止文件 - >屬性 - >解鎖
  4. 運行Visual Studio以管理員身份始終
+0

是隻讀的是目標文件/文件夾? –

+0

文件夾是隻讀的。文件不是。當我將其更改爲未選中狀態時,僅返回黑匣子。 – Tasos

回答

0

我不喜歡回答我自己的問題,但我設法解決它。

出於某種原因,請用右鍵單擊 - >屬性 - >解除阻止 - >應用解除阻止文件。我不得不在PowerShell中運行以下:

unblock-file --path ./_POST_BUILD.ps1

0

嘗試增加調試輸出到你的PowerShell腳本。這可以幫助您確定腳本是否開始運行,並在運行時遇到錯誤,或者如果錯誤是在嘗試首先運行腳本。

另外,嘗試直接將-ExecutionPolicy開關添加到您的powershell.exe參數中,以確保執行策略不是問題(可能不是,如果是的話,您會得到明確的消息告訴您)。

確保腳本的測試運行是在相同的用戶帳戶(可能是)和UAC提升/未提升狀態下運行的Visual Studio(因爲您嘗試使用VS提升,這是不是問題)。

此頁(http://tgnp.me/2011/09/powershell-authorizationmanager-check-failed-resolution/)建議確保WMI服務正在運行。

相關問題