我正在使用一个 C# 库,我发现它为 Outlook Live 运行一些远程 Powershell 脚本。作为它工作的概念验证,我做了一个单元测试,我可以运行(并逐步调试),它只调用public static
这个库中的一个方法,它在后台打开一个远程 Powershell 会话并运行一个脚本。
这在我们的一个解决方案中非常有效,但是当我在另一个解决方案中运行它时它不起作用,即使两个解决方案都有相同的两个项目和测试类。一个解决方案给了我一个例外
加载格式数据文件时出错:Microsoft.PowerShell, ,
C:\Users\xxxx.xxxx\AppData\Local\Temp\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr.format.ps1xml
: 由于以下验证异常而跳过文件:C:\Users\xxxx.xxxx\AppData\Local\Temp\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr.format.ps1xml
无法加载文件,因为在此系统上禁用了脚本的执行。有关更多详细信息,请参阅“get-help about_signing”。
我所做的一项尝试是修改PSCommand
C# 库的内部Unrestricted
设置,但这并没有解决问题。但是,如果我打开 x86 Powershell 并运行set-executionpolicy Unrestricted
我的测试将在两个解决方案中运行。在 x64 版本的 Powershell 中更改执行策略对任一解决方案都没有影响。
是否有某种特定于解决方案的权限设置?Web.Config 或 Global.asax 都不重要,因为我没有加载任何页面,所以我不知道还有什么会生效,因为我在两个解决方案中使用相同的测试运行器运行相同的单元测试(Testdriven 。网)。
有任何想法吗?谢谢。