Ver
V0.0 ini 2024-6-3
一、前言
自从DotNet8.0出来后,想试下用DontNet开发和部署基于VM(ECS)和容器(ACS)的应用,在开发的开程中发现我的开发环境(Windows11)中在PowerShell输入dotnet new con并按tab后,没有补全了,以前是按下后自动补成dotnet new console,下面是解决的办法。
二、内容
1、管理员方式运行“PowerShell”,打开$PROFILE,并粘贴下面脚本。
# PowerShell parameter completion shim for the dotnet CLI
Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock {
param($wordToComplete, $commandAst, $cursorPosition)
dotnet complete --position $cursorPosition "$commandAst" | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
2、按下图所示,更改powerShell.exe快捷键的属性
把下面黄底红字的参数,加在“目标”原有内容的后面,如下图所示:
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noe -c "&{Set-PSReadLineOption -ShowToolTips}" -WorkingDirectory ~
3、修改PowerShell的脚本执行策略问题
3.1 PowerShell 脚本执行策略问题的分析
执行这一步的原因是,1、中的脚本在执行时提示安全策略错误,执行失败;错误信息的第一部分指出,您尝试运行的脚本(位于 C:\Users\27928\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
)由于执行策略的限制而无法被执行。PowerShell有几种执行策略,用于控制是否允许脚本运行,以保护系统免受恶意脚本的攻击。
3.2 解决方案:
1)临时改变执行策略:为了运行此脚本,您可以在当前 PowerShell 会话中暂时更改执行策略。打开 PowerShell(以管理员身份运行),然后输入:
Set-ExecutionPolicy Bypass -Scope Process
这将仅对当前 PowerShell 会话临时禁用执行策略限制。操作参考 2)。
2)永久改变执行策略(谨慎操作):如果您希望对所有脚本或特定范围(如当前用户)永久更改执行策略,可以使用 -Scope
参数。例如,要为当前用户更改执行策略为 RemoteSigned(允许本地编写的脚本无需签名,但网络下载的脚本需要签名),可以运行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
示例:执行命令,并输入A确认,如下图所示