Visual Studio

时间:2017-08-04 15:12:17

标签: vb.net visual-studio powershell

我正在尝试在Windows笔记本电脑上工作并在VB.NET中定期构建Visual Studio后设置post_build.ps1

当我在powershell命令上运行脚本时,它没有任何错误。但是,当我通过Build in 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. 将政策设置为不受限制
  3. 将Visual Studio中的帖子构建事件更改为Powershell.exe -ExecutionPolicy Unrestricted -file "$(SolutionDir)bin\debug\_POST_BUILD.ps1"
  4. 右键单击解锁文件 - >属性 - >解锁
  5. 始终以管理员身份运行Visual Studio

3 个答案:

答案 0 :(得分:0)

尝试将调试输出添加到您的powershell脚本中。这可以帮助您确定脚本是否正在启动并在运行时遇到错误,或者错误是在尝试首先运行脚本时。

另外,尝试将-ExecutionPolicy开关直接添加到powershell.exe参数中,以确保执行策略不是问题(可能不是,如果是,您会收到明确的消息告诉您)。 / p>

确保脚本的测试运行在相同的用户帐户(可能是)和UAC提升/未提升状态下运行为Visual Studio(因为您尝试使用VS提升,这是一个非常有问题的方法)。

此页面(http://tgnp.me/2011/09/powershell-authorizationmanager-check-failed-resolution/)建议确保WMI服务正在运行。

答案 1 :(得分:0)

我不想回答我自己的问题,但我设法解决了这个问题。

出于某种原因,使用右键单击解锁文件 - >属性 - >取消阻止 - >应用。我不得不在Powershell上运行以下内容:

unblock-file --path ./_POST_BUILD.ps1

答案 2 :(得分:0)

在Visual Studio Powershell上复制,运行并关闭VS后。 重新打开VS,就可以了。

Set-ExecutionPolicy –ExecutionPolicy RemoteSigned