我正在尝试在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)
我尝试了什么:
Set-ExecutionPolicy Unrestricted -scope LocalMachine
和Set-ExecutionPolicy Unrestricted -scope CurrentUser
Powershell.exe -ExecutionPolicy Unrestricted -file "$(SolutionDir)bin\debug\_POST_BUILD.ps1"
答案 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