2017-06-27 173 views
2

我正在打算在软件包管理器控制台中运行的PowerShell脚本。我可以在包管理器控制台中的$profile返回的位置添加脚本,但是我无法让脚本在未打开Visual Studio的新实例的情况下接收更改。在软件包管理器控制台中刷新脚本

根据这一article,你应该能够通过输入& $profile重新加载脚本:

当您更改该用户的个人资料,而Visual Studio是打开Visual Studio将检测不到任何变化。您可以在软件包管理器控制台中键入& $配置文件以重新加载配置文件。

我可以用& $profile来验证我的脚本没有语法错误,但它不会加载更改到控制台会话,这就需要我每次我做一个脚本变化的时间打开一个新的Visual Studio会话。

例如,如果我把我的个人资料脚本:

function foo{ 
    Write-Output "bar" 
} 

,然后打开Visual Studio和包管理器控制台,我可以在提示符下键入“富”,回到“栏”。如果我将“function”更改为“functionX”并运行& $profile,则控制台中会出现ParserError。但是,如果我将脚本正文更改为Write-Output "baz",然后在控制台提示符下运行& $profile,然后输入foo,我仍然会返回“bar”。代码更改只能在Visual Studio的新实例中找到。

在Visual Studio中是否有更改此行为的设置或强制加载新脚本的方法?

+0

我相信所有你需要做的是“点源”'$ profile'所以在范围再次运行:'。 $ profile' – BenH

+0

这个伎俩!请添加为答案,以便我可以接受。 –

回答

1

如果脚本执行时没有点源,则该脚本中定义的变量,函数等不会添加到父范围中。通过在命令前添加一个句点,将点出脚本的源代码,并因此在该父范围内添加内容。

在特定情况下,命令将是:

. $profile 
相关问题