如何在Visual Studio代码中重置PowerShell运行空间

时间:2017-03-16 22:52:32

标签: powershell visual-studio-code powershell-v3.0

我目前在Visual Studio Code中使用版本0.10.0的PowerShell扩展。过去,每次运行脚本都会重置运行空间,因此如果对模块进行了更改,则会将更新后的模块导入到脚本中。

但是,出于某种原因,PowerShell运行空间不再被重置,因此在下次运行期间不会拾取模块中的更改。

PowerShell扩展中是否有设置可确保在每次运行脚本之间重置运行空间?

2 个答案:

答案 0 :(得分:4)

Visual Studio Code的PowerShell插件中现在可用的设置import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { ProfileComponent } from './profile.component'; //import { RouterTestingModule } from '@angular/router/testing'; describe('ProfileComponent', () => { let component: ProfileComponent; let fixture: ComponentFixture<ProfileComponent>; beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ ProfileComponent ] //,imports: [ RouterTestingModule ] }) .compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(ProfileComponent); component = fixture.componentInstance; fixture.detectChanges(); }); it('should be created', () => { expect(component).toBeTruthy(); }); }); 解决了我的问题。

该设置默认为false,因此必须先启用它才能生效。

当它设置为true时,每次尝试通过脚本进行调试时都会重置PowerShell会话。这意味着:

  • 可以重置常量变量
  • PowerShell模块的更新将被拉入会话

可以通过将以下行添加到用户设置JSON文件

来启用它
powershell.debugging.createTemporaryIntegratedConsole

答案 1 :(得分:2)

我仍然没有一个好的答案,但这是我在开发过程中为减轻问题所做的。

我注意到VS Code正在缓存每次运行之间的变量,并且它有效地运行了脚本,就像它是一个REPL一样。

由于PowerShell作用域的性质,您可以将代码包装在Invoke-Command -ScriptBlock {}中,并且由于变量不能在其脚本块之外访问,因此您可以重新运行代码而无需担心在vs代码中保留对象