C# Powershell脚本在一个.NET解决方案中工作,而不是在另一个解决方案中工作

C# Powershell脚本在一个.NET解决方案中工作,而不是在另一个解决方案中工作,c#,powershell,C#,Powershell,我正在使用一个C#I库,它运行Outlook Live的一些远程Powershell脚本。为了证明它是有效的,我做了一个可以运行的单元测试(并逐步调试),它只调用库中的公共静态方法,该库在后台打开一个远程Powershell会话并运行一个脚本 这在我们的一个解决方案中非常有效,但当我在另一个解决方案中运行它时,它不起作用,即使两个解决方案中都有相同的两个项目和测试类。。一个解决方案给了我一个例外 加载格式数据文件时出错: Microsoft.PowerShell,C:\Users\xxxx.xx

我正在使用一个C#I库,它运行Outlook Live的一些远程Powershell脚本。为了证明它是有效的,我做了一个可以运行的单元测试(并逐步调试),它只调用库中的
公共静态
方法,该库在后台打开一个远程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.xml
:由于以下验证异常而跳过文件:文件
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#library中的
PSCommand
,使其设置为
无限制的
,但这并没有解决问题。但是,如果我打开x86 Powershell并运行
set executionpolicy Unrestricted
我的测试将在这两种解决方案中运行。在x64版本的Powershell中更改执行策略对两种解决方案都没有影响

是否存在特定于解决方案的权限设置类型?Web.Config或Global.asax都不重要,因为我没有加载任何页面,所以我不知道还有什么会起作用,因为我使用相同的测试运行程序(Testdriven.Net)在两个解决方案中运行相同的单元测试


有什么想法吗?谢谢。

以管理员身份运行通常会设置hklm,否则会在hkcu中设置 在64位操作系统上,您需要分别为32位和64位PSH运行Set ExecutionPolicy

HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

查证 cd“hklm:\Software\Microsoft\Powershell\1\ShellIds\Microsoft Powershell”
dir

我不知道你在说什么。我知道您必须单独设置执行策略,正如我在问题中提到的那样。我也没有以交互方式运行Powershell,因此我没有以管理员身份运行的选项。我使用的是调用Powershell的C代码。