我试图在Windows笔记本电脑上工作,并在VB.NET中常规构建Visual Studio后设置post_build.ps1
当我在powershell命令上运行脚本时,它没有任何错误。但是当我在Visual Studio中通过Build来做的时候,我有这个: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 LocalMachine
和Set-ExecutionPolicy Unrestricted -scope CurrentUser
将策略设置为无限制
1.将Visual Studio中的后期生成事件更改为Powershell.exe -ExecutionPolicy Unrestricted -file "$(SolutionDir)bin\debug\_POST_BUILD.ps1"
1.通过右键单击->属性->取消阻止来取消阻止文件
1.始终以管理员身份运行Visual Studio
3条答案
按热度按时间zwghvu4y1#
使用右键单击->属性->解锁->应用解锁文件不起作用。在PowerShell中运行以下命令:
第一个月
hiz5n14c2#
尝试将调试输出添加到powershell脚本。这可以帮助您确定脚本是否正在启动并在运行时遇到错误,或者错误是否发生在最初尝试运行脚本时。
另外,尝试将-ExecutionPolicy开关直接添加到powershell.exe参数中,以确保执行策略没有问题(可能没有,如果有,您会收到一条明确的消息告诉您)。
确保脚本的测试运行在与Visual Studio相同的用户帐户下(可能是)和UAC提升/未提升状态下(因为您尝试使用VS提升,这是一个问题)。
此页(http://tgnp.me/2011/09/powershell-authorizationmanager-check-failed-resolution/)建议确保WMI服务正在运行。
knpiaxh13#
在Visual Studio Powershell上复制,运行,然后关闭VS。重新打开VS,它起作用了。
字符串