我正在开发一个旨在在Package Manager Console中运行的PowerShell脚本。我能够在包管理器控制台中的$profile
返回的位置添加脚本,但是我无法在不打开Visual Studio的新实例的情况下获取脚本来获取更改。
根据此article,您应该可以通过键入& $profile
来重新加载脚本:
在Visual Studio打开时对此用户配置文件进行更改时,Visual Studio将不会检测到任何更改。你可以输入&包管理器控制台中的$ profile以重新加载配置文件。
我可以使用& $profile
来验证我的脚本没有语法错误,但它不会将更改加载到控制台会话中,这需要我每次更改脚本时打开一个全新的Visual Studio会话
例如,如果我将配置文件脚本设置为:
function foo{
Write-Output "bar"
}
然后打开Visual Studio和Package Manager控制台,我可以输入" foo"在提示并回来" bar"。如果我改变"功能" to" functionX"并运行& $profile
,我将在控制台中得到一个ParserError。但是,如果我将脚本体更改为Write-Output "baz"
,然后在控制台提示符下运行& $profile
,然后输入foo,我仍会返回" bar"。代码更改仅在Visual Studio的新实例中获取。
Visual Studio中是否有更改此行为的设置或强制加载新脚本的方法?
答案 0 :(得分:1)
如果脚本在没有点源的情况下执行,则该脚本中定义的变量,函数等不会添加到父作用域。通过在命令前添加句点,将点源脚本,从而在该父范围中添加内容。
在您的具体情况下,命令将是:
. $profile